Compare commits
5 Commits
7a72d4aaad
...
d763c4fd9a
Author | SHA1 | Date | |
---|---|---|---|
d763c4fd9a | |||
abf7d1fd9e | |||
77fa5257c1 | |||
ad7f4fcc3b | |||
b109fe2161 |
@ -22,7 +22,7 @@
|
||||
"fps": 24,
|
||||
"anim": "combo50",
|
||||
"loop": false,
|
||||
"name": "combo celebration 1 nene xmas0"
|
||||
"name": "combo celebration 1 nene xmas"
|
||||
},
|
||||
{
|
||||
"offsets": [17, -5],
|
||||
@ -38,7 +38,7 @@
|
||||
"fps": 24,
|
||||
"anim": "combo100",
|
||||
"loop": false,
|
||||
"name": "ComboFawn0"
|
||||
"name": "ComboFawn"
|
||||
},
|
||||
{
|
||||
"offsets": [0, 52],
|
||||
@ -46,7 +46,7 @@
|
||||
"fps": 24,
|
||||
"anim": "raiseKnife",
|
||||
"loop": false,
|
||||
"name": "knife raise xmas0"
|
||||
"name": "knife raise xmas"
|
||||
},
|
||||
{
|
||||
"offsets": [-99, 52],
|
||||
@ -54,7 +54,7 @@
|
||||
"fps": 24,
|
||||
"anim": "idleKnife",
|
||||
"loop": false,
|
||||
"name": "knife high held xmas0"
|
||||
"name": "knife high held xmas"
|
||||
},
|
||||
{
|
||||
"offsets": [135, 52],
|
||||
@ -62,12 +62,12 @@
|
||||
"fps": 24,
|
||||
"anim": "lowerKnife",
|
||||
"loop": false,
|
||||
"name": "knife lower xmas0"
|
||||
"name": "knife lower xmas"
|
||||
}
|
||||
],
|
||||
"vocals_file": "",
|
||||
"no_antialiasing": false,
|
||||
"image": "characters/mallPico/neneChristmas",
|
||||
"image": "sprites/characters/neneChristmas",
|
||||
"position": [0, 200],
|
||||
"healthicon": "face",
|
||||
"flip_x": false,
|
||||
@ -75,5 +75,6 @@
|
||||
"camera_position": [-50, 100],
|
||||
"sing_duration": 6.1,
|
||||
"scale": 1,
|
||||
"_editor_isPlayer": false
|
||||
"_editor_isPlayer": false,
|
||||
"starter_frame": 1
|
||||
}
|
||||
|
119
characters/nene-christmas.lua
Normal file
@ -0,0 +1,119 @@
|
||||
---@type engine.module
|
||||
local module = {}
|
||||
local abot, sound, rate, channels, bg, eyes, char
|
||||
local spectrum = {}
|
||||
local visualizers = {}
|
||||
|
||||
require("modules.luafft")
|
||||
local logging = require("modules.logging")
|
||||
|
||||
local function divide(list, factor)
|
||||
for i, v in ipairs(list) do
|
||||
list[i] = list[i] / factor
|
||||
end
|
||||
end
|
||||
|
||||
---@param character engine.character
|
||||
function module.onAdded(character)
|
||||
char = character
|
||||
abot = Atlas("sprites/characters/abot/abotSystem")
|
||||
abot:PlayAnimation("")
|
||||
abot.layer = character.sprite.layer - .1
|
||||
abot.position = character.sprite.position:Add(Vector2(100, 200))
|
||||
|
||||
for i = 1, 7 do
|
||||
local viz = Rect("sprites/characters/abot/aBotViz.png", "sprites/characters/abot/aBotViz.xml")
|
||||
if i > 1 then
|
||||
viz.position = abot.position:Add(Vector2(i * 80 + 55, 60))
|
||||
else
|
||||
-- don't question my code choices, i really tried.
|
||||
-- The bugs didn't even make sense atp so yeah.
|
||||
-- - entar
|
||||
viz.position = abot.position:Add(Vector2(100000000, 10000000))
|
||||
end
|
||||
viz.layer = abot.layer - 0.1
|
||||
viz:Frame(string.format("viz%s", i), 5)
|
||||
visualizers[i] = viz
|
||||
end
|
||||
|
||||
bg = Image("sprites/characters/abot/stereoBG.png")
|
||||
bg.layer = abot.layer - 0.2
|
||||
bg.position = abot.position:Add(Vector2(153, 43))
|
||||
|
||||
eyes = Atlas("sprites/characters/abot/systemEyes")
|
||||
eyes.layer = abot.layer - 0.1
|
||||
eyes.position = abot.position:Add(Vector2(45, 250))
|
||||
eyes:PlayAnimation("a bot eyes lookin")
|
||||
end
|
||||
|
||||
function module.onCreate(song)
|
||||
local audiopath = string.format("songs/%s/Inst.ogg", song)
|
||||
print(audiopath)
|
||||
sound = love.sound.newSoundData(audiopath)
|
||||
rate = sound:getSampleRate()
|
||||
channels = sound:getChannels()
|
||||
end
|
||||
|
||||
function module.onBeat(beat)
|
||||
-- if beat % 2 == 0 then
|
||||
abot:PlayAnimation()
|
||||
-- end
|
||||
end
|
||||
|
||||
function module.onUpdate(dt, el)
|
||||
abot.layer = char.sprite.layer - .1
|
||||
bg.layer = abot.layer - 0.2
|
||||
eyes.layer = bg.layer
|
||||
|
||||
abot.position = char.sprite.position:Add(Vector2(-100, 300)):Add(char.stagePosition)
|
||||
|
||||
bg.position = abot.position:Add(Vector2(153, 43))
|
||||
eyes.position = abot.position:Add(Vector2(45, 250))
|
||||
|
||||
pcall(function ()
|
||||
local curSample = inst:tell('samples')
|
||||
|
||||
local wave = {}
|
||||
local size = next_possible_size(2048)
|
||||
if channels == 2 then
|
||||
for i = curSample, (curSample + (size - 1) / 2) do
|
||||
local sample = (sound:getSample(i * 2) + sound:getSample(i * 2 + 1)) * 0.5
|
||||
table.insert(wave, complex.new(sample, 0))
|
||||
end
|
||||
else
|
||||
for i = curSample, curSample + (size - 1) do
|
||||
local sample = (sound:getSample(i * 2) + sound:getSample(i * 2 + 1)) * 0.5
|
||||
table.insert(wave, complex.new(sample, 0))
|
||||
table.insert(wave, complex.new(sound:getSample(i), 0))
|
||||
end
|
||||
end
|
||||
|
||||
local spec = fft(wave, false)
|
||||
|
||||
divide(spec, size / 2)
|
||||
|
||||
spectrum = spec
|
||||
local division = 142.857142857
|
||||
|
||||
for i=2, (#spectrum/division) do
|
||||
local n = spectrum[i]:abs()
|
||||
|
||||
visualizers[i]:Frame(string.format("viz%s", i), math.floor(n / 0.06) > 5 and 0 or 5 - math.floor(n / 0.06))
|
||||
visualizers[i].layer = abot.layer - 0.1
|
||||
visualizers[i].position = abot.position:Add(Vector2(i * 80 + 55, 60))
|
||||
end
|
||||
end)
|
||||
end
|
||||
|
||||
function module.onClose()
|
||||
|
||||
end
|
||||
|
||||
function module.onEvent(event)
|
||||
if event.name == "FocusCamera" then
|
||||
local str = event.vars.char == 1 and "a bot eyes lookin" or "a bot eyes lookin"
|
||||
eyes:PlayAnimation(str)
|
||||
end
|
||||
end
|
||||
|
||||
return module
|
@ -73,12 +73,8 @@
|
||||
"fps": 24,
|
||||
"anim": "hairBlow",
|
||||
"indices": [
|
||||
0,
|
||||
1,
|
||||
2,
|
||||
3
|
||||
],
|
||||
"name": "HairBlow0"
|
||||
"name": "Idle"
|
||||
},
|
||||
{
|
||||
"loop": false,
|
||||
@ -89,20 +85,25 @@
|
||||
"fps": 24,
|
||||
"anim": "hairFall",
|
||||
"indices": [
|
||||
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16
|
||||
],
|
||||
"name": "HairBlow0"
|
||||
"name": "Idle"
|
||||
}
|
||||
],
|
||||
"vocals_file": "",
|
||||
"no_antialiasing": false,
|
||||
"image": "sprites/characters/Nene",
|
||||
"position": [0, 200],
|
||||
"position": [-200, 400],
|
||||
"healthicon": "face",
|
||||
"flip_x": false,
|
||||
"healthbar_colors": [161, 161, 161],
|
||||
"camera_position": [-150, 100],
|
||||
"sing_duration": 6.1,
|
||||
"scale": 1,
|
||||
"_editor_isPlayer": false
|
||||
"_editor_isPlayer": false,
|
||||
"starter_frame": 1,
|
||||
"stage_positions": {
|
||||
"tank": [500, -330],
|
||||
"tankErect": [650, -260],
|
||||
"philly": [320, 80]
|
||||
}
|
||||
}
|
119
characters/nene.lua
Normal file
@ -0,0 +1,119 @@
|
||||
---@type engine.module
|
||||
local module = {}
|
||||
local abot, sound, rate, channels, bg, eyes, char
|
||||
local spectrum = {}
|
||||
local visualizers = {}
|
||||
|
||||
require("modules.luafft")
|
||||
local logging = require("modules.logging")
|
||||
|
||||
local function divide(list, factor)
|
||||
for i, v in ipairs(list) do
|
||||
list[i] = list[i] / factor
|
||||
end
|
||||
end
|
||||
|
||||
---@param character engine.character
|
||||
function module.onAdded(character)
|
||||
char = character
|
||||
abot = Atlas("sprites/characters/abot/abotSystem")
|
||||
abot:PlayAnimation("")
|
||||
abot.layer = character.sprite.layer - .1
|
||||
abot.position = character.sprite.position:Add(Vector2(100, 200))
|
||||
|
||||
for i = 1, 7 do
|
||||
local viz = Rect("sprites/characters/abot/aBotViz.png", "sprites/characters/abot/aBotViz.xml")
|
||||
if i > 1 then
|
||||
viz.position = abot.position:Add(Vector2(i * 80 + 55, 60))
|
||||
else
|
||||
-- don't question my code choices, i really tried.
|
||||
-- The bugs didn't even make sense atp so yeah.
|
||||
-- - entar
|
||||
viz.position = abot.position:Add(Vector2(100000000, 10000000))
|
||||
end
|
||||
viz.layer = abot.layer - 0.1
|
||||
viz:Frame(string.format("viz%s", i), 5)
|
||||
visualizers[i] = viz
|
||||
end
|
||||
|
||||
bg = Image("sprites/characters/abot/stereoBG.png")
|
||||
bg.layer = abot.layer - 0.2
|
||||
bg.position = abot.position:Add(Vector2(153, 43))
|
||||
|
||||
eyes = Atlas("sprites/characters/abot/systemEyes")
|
||||
eyes.layer = abot.layer - 0.1
|
||||
eyes.position = abot.position:Add(Vector2(45, 250))
|
||||
eyes:PlayAnimation("a bot eyes lookin")
|
||||
end
|
||||
|
||||
function module.onCreate(song)
|
||||
local audiopath = string.format("songs/%s/Inst.ogg", song)
|
||||
print(audiopath)
|
||||
sound = love.sound.newSoundData(audiopath)
|
||||
rate = sound:getSampleRate()
|
||||
channels = sound:getChannels()
|
||||
end
|
||||
|
||||
function module.onBeat(beat)
|
||||
-- if beat % 2 == 0 then
|
||||
abot:PlayAnimation()
|
||||
-- end
|
||||
end
|
||||
|
||||
function module.onUpdate(dt, el)
|
||||
abot.layer = char.sprite.layer - .1
|
||||
bg.layer = abot.layer - 0.2
|
||||
eyes.layer = bg.layer
|
||||
|
||||
abot.position = char.sprite.position:Add(Vector2(-100, 300)):Add(char.stagePosition)
|
||||
|
||||
bg.position = abot.position:Add(Vector2(153, 43))
|
||||
eyes.position = abot.position:Add(Vector2(45, 250))
|
||||
|
||||
pcall(function ()
|
||||
local curSample = inst:tell('samples')
|
||||
|
||||
local wave = {}
|
||||
local size = next_possible_size(2048)
|
||||
if channels == 2 then
|
||||
for i = curSample, (curSample + (size - 1) / 2) do
|
||||
local sample = (sound:getSample(i * 2) + sound:getSample(i * 2 + 1)) * 0.5
|
||||
table.insert(wave, complex.new(sample, 0))
|
||||
end
|
||||
else
|
||||
for i = curSample, curSample + (size - 1) do
|
||||
local sample = (sound:getSample(i * 2) + sound:getSample(i * 2 + 1)) * 0.5
|
||||
table.insert(wave, complex.new(sample, 0))
|
||||
table.insert(wave, complex.new(sound:getSample(i), 0))
|
||||
end
|
||||
end
|
||||
|
||||
local spec = fft(wave, false)
|
||||
|
||||
divide(spec, size / 2)
|
||||
|
||||
spectrum = spec
|
||||
local division = 142.857142857
|
||||
|
||||
for i=2, (#spectrum/division) do
|
||||
local n = spectrum[i]:abs()
|
||||
|
||||
visualizers[i]:Frame(string.format("viz%s", i), math.floor(n / 0.06) > 5 and 0 or 5 - math.floor(n / 0.06))
|
||||
visualizers[i].layer = abot.layer - 0.1
|
||||
visualizers[i].position = abot.position:Add(Vector2(i * 80 + 55, 60))
|
||||
end
|
||||
end)
|
||||
end
|
||||
|
||||
function module.onClose()
|
||||
|
||||
end
|
||||
|
||||
function module.onEvent(event)
|
||||
if event.name == "FocusCamera" then
|
||||
local str = event.vars.char == 1 and "a bot eyes lookin" or "a bot eyes lookin"
|
||||
eyes:PlayAnimation(str)
|
||||
end
|
||||
end
|
||||
|
||||
return module
|
59
characters/otis-speaker.json
Normal file
@ -0,0 +1,59 @@
|
||||
{
|
||||
"animations": [
|
||||
{
|
||||
"offsets": [0, 0],
|
||||
"indices": [],
|
||||
"fps": 24,
|
||||
"anim": "idle",
|
||||
"loop": false,
|
||||
"name": "otis idle"
|
||||
},
|
||||
{
|
||||
"offsets": [0, 13],
|
||||
"indices": [],
|
||||
"fps": 24,
|
||||
"anim": "shoot1",
|
||||
"loop": false,
|
||||
"name": "shoot back"
|
||||
},
|
||||
{
|
||||
"offsets": [-35, 21],
|
||||
"indices": [],
|
||||
"fps": 24,
|
||||
"anim": "shoot2",
|
||||
"loop": false,
|
||||
"name": "shoot back low"
|
||||
},
|
||||
{
|
||||
"offsets": [238, 96],
|
||||
"indices": [],
|
||||
"fps": 24,
|
||||
"anim": "shoot3",
|
||||
"loop": false,
|
||||
"name": "shoot forward"
|
||||
},
|
||||
{
|
||||
"offsets": [260, 23],
|
||||
"indices": [],
|
||||
"fps": 24,
|
||||
"anim": "shoot4",
|
||||
"loop": false,
|
||||
"name": "shoot forward low"
|
||||
}
|
||||
],
|
||||
"vocals_file": "",
|
||||
"no_antialiasing": false,
|
||||
"image": "sprites/characters/otisSpeaker",
|
||||
"position": [-40, 110],
|
||||
"healthicon": "face",
|
||||
"flip_x": false,
|
||||
"healthbar_colors": [161, 161, 161],
|
||||
"camera_position": [-150, 100],
|
||||
"sing_duration": 6.1,
|
||||
"scale": 1,
|
||||
"_editor_isPlayer": false,
|
||||
"starter_frame": 1,
|
||||
"stage_positions": {
|
||||
"tank": [500, -330]
|
||||
}
|
||||
}
|
119
characters/otis-speaker.lua
Normal file
@ -0,0 +1,119 @@
|
||||
---@type engine.module
|
||||
local module = {}
|
||||
local abot, sound, rate, channels, bg, eyes, char
|
||||
local spectrum = {}
|
||||
local visualizers = {}
|
||||
|
||||
require("modules.luafft")
|
||||
local logging = require("modules.logging")
|
||||
|
||||
local function divide(list, factor)
|
||||
for i, v in ipairs(list) do
|
||||
list[i] = list[i] / factor
|
||||
end
|
||||
end
|
||||
|
||||
---@param character engine.character
|
||||
function module.onAdded(character)
|
||||
char = character
|
||||
abot = Atlas("sprites/characters/abot/abotSystem")
|
||||
abot:PlayAnimation("")
|
||||
abot.layer = character.sprite.layer - .1
|
||||
abot.position = character.sprite.position:Add(Vector2(0, 0))
|
||||
|
||||
for i = 1, 7 do
|
||||
local viz = Rect("sprites/characters/abot/aBotViz.png", "sprites/characters/abot/aBotViz.xml")
|
||||
if i > 1 then
|
||||
viz.position = abot.position:Add(Vector2(i * 80 + 55, 60))
|
||||
else
|
||||
-- don't question my code choices, i really tried.
|
||||
-- The bugs didn't even make sense atp so yeah.
|
||||
-- - entar
|
||||
viz.position = abot.position:Add(Vector2(100000000, 10000000))
|
||||
end
|
||||
viz.layer = abot.layer - 0.1
|
||||
viz:Frame(string.format("viz%s", i), 5)
|
||||
visualizers[i] = viz
|
||||
end
|
||||
|
||||
bg = Image("sprites/characters/abot/stereoBG.png")
|
||||
bg.layer = abot.layer - 0.2
|
||||
bg.position = abot.position:Add(Vector2(153, 43))
|
||||
|
||||
eyes = Atlas("sprites/characters/abot/systemEyes")
|
||||
eyes.layer = abot.layer - 0.1
|
||||
eyes.position = abot.position:Add(Vector2(45, 250))
|
||||
eyes:PlayAnimation("a bot eyes lookin")
|
||||
end
|
||||
|
||||
function module.onCreate(song)
|
||||
local audiopath = string.format("songs/%s/Inst.ogg", song)
|
||||
print(audiopath)
|
||||
sound = love.sound.newSoundData(audiopath)
|
||||
rate = sound:getSampleRate()
|
||||
channels = sound:getChannels()
|
||||
end
|
||||
|
||||
function module.onBeat(beat)
|
||||
-- if beat % 2 == 0 then
|
||||
abot:PlayAnimation()
|
||||
-- end
|
||||
end
|
||||
|
||||
function module.onUpdate(dt, el)
|
||||
abot.layer = char.sprite.layer - .1
|
||||
bg.layer = abot.layer - 0.2
|
||||
eyes.layer = bg.layer
|
||||
|
||||
abot.position = char.sprite.position:Add(Vector2(-80, 320)):Add(char.stagePosition)
|
||||
|
||||
bg.position = abot.position:Add(Vector2(153, 43))
|
||||
eyes.position = abot.position:Add(Vector2(45, 250))
|
||||
|
||||
pcall(function ()
|
||||
local curSample = inst:tell('samples')
|
||||
|
||||
local wave = {}
|
||||
local size = next_possible_size(2048)
|
||||
if channels == 2 then
|
||||
for i = curSample, (curSample + (size - 1) / 2) do
|
||||
local sample = (sound:getSample(i * 2) + sound:getSample(i * 2 + 1)) * 0.5
|
||||
table.insert(wave, complex.new(sample, 0))
|
||||
end
|
||||
else
|
||||
for i = curSample, curSample + (size - 1) do
|
||||
local sample = (sound:getSample(i * 2) + sound:getSample(i * 2 + 1)) * 0.5
|
||||
table.insert(wave, complex.new(sample, 0))
|
||||
table.insert(wave, complex.new(sound:getSample(i), 0))
|
||||
end
|
||||
end
|
||||
|
||||
local spec = fft(wave, false)
|
||||
|
||||
divide(spec, size / 2)
|
||||
|
||||
spectrum = spec
|
||||
local division = 142.857142857
|
||||
|
||||
for i=2, (#spectrum/division) do
|
||||
local n = spectrum[i]:abs()
|
||||
|
||||
visualizers[i]:Frame(string.format("viz%s", i), math.floor(n / 0.06) > 5 and 0 or 5 - math.floor(n / 0.06))
|
||||
visualizers[i].layer = abot.layer - 0.1
|
||||
visualizers[i].position = abot.position:Add(Vector2(i * 80 + 55, 60))
|
||||
end
|
||||
end)
|
||||
end
|
||||
|
||||
function module.onClose()
|
||||
|
||||
end
|
||||
|
||||
function module.onEvent(event)
|
||||
if event.name == "FocusCamera" then
|
||||
local str = event.vars.char == 1 and "a bot eyes lookin" or "a bot eyes lookin"
|
||||
eyes:PlayAnimation(str)
|
||||
end
|
||||
end
|
||||
|
||||
return module
|
@ -154,6 +154,17 @@
|
||||
"name": "burpshit",
|
||||
"indices": []
|
||||
},
|
||||
{
|
||||
"loop": false,
|
||||
"offsets": [
|
||||
30,
|
||||
0
|
||||
],
|
||||
"anim": "burpSmile",
|
||||
"fps": 24,
|
||||
"name": "burpsmile",
|
||||
"indices": []
|
||||
},
|
||||
{
|
||||
"loop": false,
|
||||
"offsets": [
|
||||
@ -187,5 +198,8 @@
|
||||
"sing_duration": 4,
|
||||
"scale": 1,
|
||||
"_editor_isPlayer": true,
|
||||
"starter_frame": 1
|
||||
"starter_frame": 1,
|
||||
"stage_positions": {
|
||||
"tankErect": [1100, -200]
|
||||
}
|
||||
}
|
@ -62,7 +62,7 @@
|
||||
],
|
||||
"loop": false,
|
||||
"fps": 24,
|
||||
"anim": "singRIGHT",
|
||||
"anim": "singLEFT",
|
||||
"indices": [],
|
||||
"name": "Pico Note Right"
|
||||
},
|
||||
@ -73,7 +73,7 @@
|
||||
],
|
||||
"loop": false,
|
||||
"fps": 24,
|
||||
"anim": "singLEFT",
|
||||
"anim": "singRIGHT",
|
||||
"indices": [],
|
||||
"name": "Pico NOTE LEFT"
|
||||
},
|
||||
|
79
characters/tankman-bloody.json
Normal file
@ -0,0 +1,79 @@
|
||||
{
|
||||
"animations": [
|
||||
{
|
||||
"offsets": [0, 52],
|
||||
"indices": [],
|
||||
"fps": 24,
|
||||
"anim": "idle",
|
||||
"loop": false,
|
||||
"name": "Tankman Idle bloody"
|
||||
},
|
||||
{
|
||||
"offsets": [-90, 15],
|
||||
"indices": [],
|
||||
"fps": 24,
|
||||
"anim": "singLEFT",
|
||||
"loop": false,
|
||||
"name": "Tankman Right Note bloody"
|
||||
},
|
||||
{
|
||||
"offsets": [-62, -105],
|
||||
"indices": [],
|
||||
"fps": 24,
|
||||
"anim": "singDOWN",
|
||||
"loop": false,
|
||||
"name": "Tankman DOWN note bloody"
|
||||
},
|
||||
{
|
||||
"offsets": [-47, 165],
|
||||
"indices": [],
|
||||
"fps": 24,
|
||||
"anim": "singUP",
|
||||
"loop": false,
|
||||
"name": "Tankman UP note bloody"
|
||||
},
|
||||
{
|
||||
"offsets": [23, 17],
|
||||
"indices": [],
|
||||
"fps": 24,
|
||||
"anim": "singRIGHT",
|
||||
"loop": false,
|
||||
"name": "Tankman Note Left bloody"
|
||||
},
|
||||
{
|
||||
"offsets": [110, 117],
|
||||
"indices": [],
|
||||
"fps": 30,
|
||||
"anim": "redheadsAnim",
|
||||
"loop": false,
|
||||
"name": "redheads anim"
|
||||
},
|
||||
{
|
||||
"offsets": [0, 90],
|
||||
"indices": [],
|
||||
"fps": 30,
|
||||
"anim": "hehPrettyGood",
|
||||
"loop": false,
|
||||
"name": "pretty good anim"
|
||||
}
|
||||
],
|
||||
"vocals_file": "",
|
||||
"no_antialiasing": false,
|
||||
"image": "sprites/characters/tankmanCaptainBloody",
|
||||
"position": [0, 480],
|
||||
"healthicon": "tankman-bloody",
|
||||
"flip_x": true,
|
||||
"healthbar_colors": [
|
||||
225,
|
||||
225,
|
||||
225
|
||||
],
|
||||
"camera_position": [-900, -20],
|
||||
"sing_duration": 6.1,
|
||||
"scale": 1,
|
||||
"_editor_isPlayer": false,
|
||||
"starter_frame": 1,
|
||||
"stage_positions": {
|
||||
"tank": [500, -330]
|
||||
}
|
||||
}
|
@ -7,7 +7,7 @@
|
||||
"difficulties": ["easy", "normal", "hard"],
|
||||
"characters": {
|
||||
"player": "pico-playable",
|
||||
"girlfriend": "gf",
|
||||
"girlfriend": "nene",
|
||||
"opponent": "pico",
|
||||
"instrumental": "pico",
|
||||
"altInstrumentals": []
|
||||
|
@ -7,7 +7,7 @@
|
||||
"difficulties": ["easy", "normal", "hard"],
|
||||
"characters": {
|
||||
"player": "pico-christmas",
|
||||
"girlfriend": "gf-christmas",
|
||||
"girlfriend": "nene-christmas",
|
||||
"opponent": "parents-christmas",
|
||||
"instrumental": "pico",
|
||||
"opponentVocals": ["parents-christmas"],
|
||||
|
@ -7,7 +7,7 @@
|
||||
"difficulties": ["easy", "normal", "hard"],
|
||||
"characters": {
|
||||
"player": "pico-playable",
|
||||
"girlfriend": "gf",
|
||||
"girlfriend": "nene",
|
||||
"opponent": "dad",
|
||||
"instrumental": "pico",
|
||||
"altInstrumentals": []
|
||||
|
@ -7,7 +7,7 @@
|
||||
"difficulties": ["easy", "normal", "hard"],
|
||||
"characters": {
|
||||
"player": "pico-playable",
|
||||
"girlfriend": "gf",
|
||||
"girlfriend": "nene",
|
||||
"opponent": "dad",
|
||||
"instrumental": "pico",
|
||||
"altInstrumentals": []
|
||||
|
@ -7,7 +7,7 @@
|
||||
"difficulties": ["easy", "normal", "hard"],
|
||||
"characters": {
|
||||
"player": "pico-playable",
|
||||
"girlfriend": "gf",
|
||||
"girlfriend": "nene",
|
||||
"opponent": "pico",
|
||||
"instrumental": "pico",
|
||||
"altInstrumentals": []
|
||||
|
@ -7,7 +7,7 @@
|
||||
"difficulties": ["easy", "normal", "hard"],
|
||||
"characters": {
|
||||
"player": "pico-playable",
|
||||
"girlfriend": "gf",
|
||||
"girlfriend": "nene",
|
||||
"opponent": "pico",
|
||||
"instrumental": "pico",
|
||||
"altInstrumentals": []
|
||||
|
@ -7,7 +7,7 @@
|
||||
"difficulties": ["easy", "normal", "hard"],
|
||||
"characters": {
|
||||
"player": "pico-dark",
|
||||
"girlfriend": "gf-dark",
|
||||
"girlfriend": "nene-dark",
|
||||
"opponent": "spooky-dark",
|
||||
"instrumental": "pico",
|
||||
"altInstrumentals": []
|
||||
|
@ -7,7 +7,7 @@
|
||||
"difficulties": ["easy", "normal", "hard"],
|
||||
"characters": {
|
||||
"player": "pico-dark",
|
||||
"girlfriend": "gf-dark",
|
||||
"girlfriend": "nene-dark",
|
||||
"opponent": "spooky-dark",
|
||||
"instrumental": "pico",
|
||||
"altInstrumentals": []
|
||||
|
@ -242,6 +242,11 @@
|
||||
"e": "FocusCamera",
|
||||
"v": { "x": 0, "duration": 16, "y": 0, "ease": "expoOut", "char": 1 }
|
||||
},
|
||||
{
|
||||
"t": 61980.0112359550,
|
||||
"e": "Change Character",
|
||||
"v": { "char": "dad", "force": true, "to": "tankman-bloody" }
|
||||
},
|
||||
{
|
||||
"t": 61980.0112359551,
|
||||
"e": "PlayAnimation",
|
||||
|
@ -10,7 +10,7 @@
|
||||
"difficulties": ["easy", "normal", "hard"],
|
||||
"characters": {
|
||||
"player": "pico-holding-nene",
|
||||
"girlfriend": "nene",
|
||||
"girlfriend": "otis-speaker",
|
||||
"opponent": "tankman",
|
||||
"instrumental": "pico",
|
||||
"altInstrumentals": [],
|
||||
|
@ -7,7 +7,7 @@
|
||||
"difficulties": ["easy", "normal", "hard"],
|
||||
"characters": {
|
||||
"player": "pico-playable",
|
||||
"girlfriend": "gf",
|
||||
"girlfriend": "nene",
|
||||
"opponent": "tankman",
|
||||
"instrumental": "pico",
|
||||
"altInstrumentals": []
|
||||
|
BIN
images/weeb/animatedEvilSchool.png
Normal file
After Width: | Height: | Size: 94 KiB |
43
images/weeb/animatedEvilSchool.xml
Normal file
@ -0,0 +1,43 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<TextureAtlas imagePath="animatedEvilSchool.png">
|
||||
<SubTexture name="background 2 instance 10000" x="0" y="0" width="513" height="512" />
|
||||
<SubTexture name="background 2 instance 10001" x="523" y="0" width="513" height="512" />
|
||||
<SubTexture name="background 2 instance 10002" x="1046" y="0" width="513" height="512" />
|
||||
<SubTexture name="background 2 instance 10003" x="1569" y="0" width="513" height="512" />
|
||||
<SubTexture name="background 2 instance 10004" x="2092" y="0" width="513" height="512" />
|
||||
<SubTexture name="background 2 instance 10005" x="2615" y="0" width="513" height="512" />
|
||||
<SubTexture name="background 2 instance 10006" x="3138" y="0" width="513" height="512" />
|
||||
<SubTexture name="background 2 instance 10007" x="0" y="522" width="513" height="512" />
|
||||
<SubTexture name="background 2 instance 10008" x="523" y="522" width="513" height="512" />
|
||||
<SubTexture name="background 2 instance 10009" x="1046" y="522" width="513" height="512" />
|
||||
<SubTexture name="background 2 instance 10010" x="1569" y="522" width="513" height="512" />
|
||||
<SubTexture name="background 2 instance 10011" x="2092" y="522" width="513" height="512" />
|
||||
<SubTexture name="background 2 instance 10012" x="2615" y="522" width="513" height="512" />
|
||||
<SubTexture name="background 2 instance 10013" x="3138" y="522" width="513" height="512" />
|
||||
<SubTexture name="background 2 instance 10014" x="0" y="1044" width="513" height="512" />
|
||||
<SubTexture name="background 2 instance 10015" x="523" y="1044" width="513" height="512" />
|
||||
<SubTexture name="background 2 instance 10016" x="1046" y="1044" width="513" height="512" />
|
||||
<SubTexture name="background 2 instance 10017" x="1569" y="1044" width="513" height="512" />
|
||||
<SubTexture name="background 2 instance 10018" x="2092" y="1044" width="513" height="512" />
|
||||
<SubTexture name="background 2 instance 10019" x="2615" y="1044" width="513" height="512" />
|
||||
<SubTexture name="background 2 instance 10020" x="3138" y="1044" width="513" height="512" />
|
||||
<SubTexture name="background 2 instance 10021" x="0" y="1566" width="513" height="512" />
|
||||
<SubTexture name="background 2 instance 10022" x="523" y="1566" width="513" height="512" />
|
||||
<SubTexture name="background 2 instance 10023" x="1046" y="1566" width="513" height="512" />
|
||||
<SubTexture name="background 2 instance 10024" x="1569" y="1566" width="513" height="512" />
|
||||
<SubTexture name="background 2 instance 10025" x="2092" y="1566" width="513" height="512" />
|
||||
<SubTexture name="background 2 instance 10026" x="2615" y="1566" width="513" height="512" />
|
||||
<SubTexture name="background 2 instance 10027" x="3138" y="1566" width="513" height="512" />
|
||||
<SubTexture name="background 2 instance 10028" x="0" y="2088" width="513" height="512" />
|
||||
<SubTexture name="background 2 instance 10029" x="523" y="2088" width="513" height="512" />
|
||||
<SubTexture name="background 2 instance 10030" x="1046" y="2088" width="513" height="512" />
|
||||
<SubTexture name="background 2 instance 10031" x="1569" y="2088" width="513" height="512" />
|
||||
<SubTexture name="background 2 instance 10032" x="2092" y="2088" width="513" height="512" />
|
||||
<SubTexture name="background 2 instance 10033" x="2615" y="2088" width="513" height="512" />
|
||||
<SubTexture name="background 2 instance 10034" x="3138" y="2088" width="513" height="512" />
|
||||
<SubTexture name="background 2 instance 10035" x="0" y="2610" width="513" height="512" />
|
||||
<SubTexture name="background 2 instance 10036" x="523" y="2610" width="513" height="512" />
|
||||
<SubTexture name="background 2 instance 10037" x="1046" y="2610" width="513" height="512" />
|
||||
<SubTexture name="background 2 instance 10038" x="1569" y="2610" width="513" height="512" />
|
||||
<SubTexture name="background 2 instance 10039" x="2092" y="2610" width="513" height="512" />
|
||||
</TextureAtlas>
|
BIN
images/weeb/bgFreaks.png
Normal file
After Width: | Height: | Size: 32 KiB |
63
images/weeb/bgFreaks.xml
Normal file
@ -0,0 +1,63 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<TextureAtlas imagePath="bgFreaks.png">
|
||||
<SubTexture name="BG fangirls dissuaded0000" x="0" y="0" width="451" height="96" />
|
||||
<SubTexture name="BG fangirls dissuaded0001" x="0" y="0" width="451" height="96" />
|
||||
<SubTexture name="BG fangirls dissuaded0002" x="461" y="0" width="451" height="96" />
|
||||
<SubTexture name="BG fangirls dissuaded0003" x="461" y="0" width="451" height="96" />
|
||||
<SubTexture name="BG fangirls dissuaded0004" x="461" y="0" width="451" height="96" />
|
||||
<SubTexture name="BG fangirls dissuaded0005" x="461" y="0" width="451" height="96" />
|
||||
<SubTexture name="BG fangirls dissuaded0006" x="0" y="106" width="451" height="96" />
|
||||
<SubTexture name="BG fangirls dissuaded0007" x="0" y="106" width="451" height="96" />
|
||||
<SubTexture name="BG fangirls dissuaded0008" x="0" y="106" width="451" height="96" />
|
||||
<SubTexture name="BG fangirls dissuaded0009" x="0" y="106" width="451" height="96" />
|
||||
<SubTexture name="BG fangirls dissuaded0010" x="0" y="106" width="451" height="96" />
|
||||
<SubTexture name="BG fangirls dissuaded0011" x="0" y="106" width="451" height="96" />
|
||||
<SubTexture name="BG fangirls dissuaded0012" x="0" y="106" width="451" height="96" />
|
||||
<SubTexture name="BG fangirls dissuaded0013" x="0" y="106" width="451" height="96" />
|
||||
<SubTexture name="BG fangirls dissuaded0014" x="461" y="106" width="451" height="96" />
|
||||
<SubTexture name="BG fangirls dissuaded0015" x="461" y="106" width="451" height="96" />
|
||||
<SubTexture name="BG fangirls dissuaded0016" x="0" y="212" width="451" height="96" />
|
||||
<SubTexture name="BG fangirls dissuaded0017" x="0" y="212" width="451" height="96" />
|
||||
<SubTexture name="BG fangirls dissuaded0018" x="461" y="212" width="451" height="96" />
|
||||
<SubTexture name="BG fangirls dissuaded0019" x="461" y="212" width="451" height="96" />
|
||||
<SubTexture name="BG fangirls dissuaded0020" x="0" y="318" width="451" height="96" />
|
||||
<SubTexture name="BG fangirls dissuaded0021" x="0" y="318" width="451" height="96" />
|
||||
<SubTexture name="BG fangirls dissuaded0022" x="461" y="318" width="451" height="96" />
|
||||
<SubTexture name="BG fangirls dissuaded0023" x="461" y="318" width="451" height="96" />
|
||||
<SubTexture name="BG fangirls dissuaded0024" x="461" y="318" width="451" height="96" />
|
||||
<SubTexture name="BG fangirls dissuaded0025" x="461" y="318" width="451" height="96" />
|
||||
<SubTexture name="BG fangirls dissuaded0026" x="461" y="318" width="451" height="96" />
|
||||
<SubTexture name="BG fangirls dissuaded0027" x="461" y="318" width="451" height="96" />
|
||||
<SubTexture name="BG fangirls dissuaded0028" x="461" y="318" width="451" height="96" />
|
||||
<SubTexture name="BG fangirls dissuaded0029" x="461" y="318" width="451" height="96" />
|
||||
<SubTexture name="BG girls group0000" x="0" y="424" width="450" height="96" />
|
||||
<SubTexture name="BG girls group0001" x="0" y="424" width="450" height="96" />
|
||||
<SubTexture name="BG girls group0002" x="460" y="424" width="450" height="96" />
|
||||
<SubTexture name="BG girls group0003" x="460" y="424" width="450" height="96" />
|
||||
<SubTexture name="BG girls group0004" x="460" y="424" width="450" height="96" />
|
||||
<SubTexture name="BG girls group0005" x="460" y="424" width="450" height="96" />
|
||||
<SubTexture name="BG girls group0006" x="0" y="530" width="450" height="96" />
|
||||
<SubTexture name="BG girls group0007" x="0" y="530" width="450" height="96" />
|
||||
<SubTexture name="BG girls group0008" x="0" y="530" width="450" height="96" />
|
||||
<SubTexture name="BG girls group0009" x="0" y="530" width="450" height="96" />
|
||||
<SubTexture name="BG girls group0010" x="0" y="530" width="450" height="96" />
|
||||
<SubTexture name="BG girls group0011" x="0" y="530" width="450" height="96" />
|
||||
<SubTexture name="BG girls group0012" x="0" y="530" width="450" height="96" />
|
||||
<SubTexture name="BG girls group0013" x="0" y="530" width="450" height="96" />
|
||||
<SubTexture name="BG girls group0014" x="460" y="530" width="450" height="96" />
|
||||
<SubTexture name="BG girls group0015" x="460" y="530" width="450" height="96" />
|
||||
<SubTexture name="BG girls group0016" x="0" y="636" width="450" height="96" />
|
||||
<SubTexture name="BG girls group0017" x="0" y="636" width="450" height="96" />
|
||||
<SubTexture name="BG girls group0018" x="0" y="530" width="450" height="96" />
|
||||
<SubTexture name="BG girls group0019" x="0" y="530" width="450" height="96" />
|
||||
<SubTexture name="BG girls group0020" x="460" y="636" width="450" height="96" />
|
||||
<SubTexture name="BG girls group0021" x="460" y="636" width="450" height="96" />
|
||||
<SubTexture name="BG girls group0022" x="460" y="424" width="450" height="96" />
|
||||
<SubTexture name="BG girls group0023" x="460" y="424" width="450" height="96" />
|
||||
<SubTexture name="BG girls group0024" x="460" y="424" width="450" height="96" />
|
||||
<SubTexture name="BG girls group0025" x="460" y="424" width="450" height="96" />
|
||||
<SubTexture name="BG girls group0026" x="460" y="424" width="450" height="96" />
|
||||
<SubTexture name="BG girls group0027" x="460" y="424" width="450" height="96" />
|
||||
<SubTexture name="BG girls group0028" x="460" y="424" width="450" height="96" />
|
||||
<SubTexture name="BG girls group0029" x="460" y="424" width="450" height="96" />
|
||||
</TextureAtlas>
|
BIN
images/weeb/erect/evilSchoolBG.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
images/weeb/erect/masks/aBotPixelSpeaker_mask.png
Normal file
After Width: | Height: | Size: 799 B |
BIN
images/weeb/erect/masks/bfPixel_mask.png
Normal file
After Width: | Height: | Size: 6.2 KiB |
BIN
images/weeb/erect/masks/gfPixel_mask.png
Normal file
After Width: | Height: | Size: 3.7 KiB |
BIN
images/weeb/erect/masks/nenePixel_mask.png
Normal file
After Width: | Height: | Size: 5.8 KiB |
BIN
images/weeb/erect/masks/picoPixel_mask.png
Normal file
After Width: | Height: | Size: 10 KiB |
BIN
images/weeb/erect/masks/senpai_mask.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
images/weeb/erect/petals.png
Normal file
After Width: | Height: | Size: 18 KiB |
59
images/weeb/erect/petals.xml
Normal file
@ -0,0 +1,59 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<TextureAtlas imagePath="petals.png">
|
||||
<SubTexture name="PETALS ALL0000" x="0" y="0" width="311" height="161" />
|
||||
<SubTexture name="PETALS ALL0001" x="0" y="0" width="311" height="161" />
|
||||
<SubTexture name="PETALS ALL0002" x="313" y="0" width="311" height="161" />
|
||||
<SubTexture name="PETALS ALL0003" x="313" y="0" width="311" height="161" />
|
||||
<SubTexture name="PETALS ALL0004" x="626" y="0" width="311" height="161" />
|
||||
<SubTexture name="PETALS ALL0005" x="939" y="0" width="311" height="161" />
|
||||
<SubTexture name="PETALS ALL0006" x="1252" y="0" width="311" height="161" />
|
||||
<SubTexture name="PETALS ALL0007" x="1252" y="0" width="311" height="161" />
|
||||
<SubTexture name="PETALS ALL0008" x="1565" y="0" width="311" height="161" />
|
||||
<SubTexture name="PETALS ALL0009" x="0" y="163" width="311" height="161" />
|
||||
<SubTexture name="PETALS ALL0010" x="313" y="163" width="311" height="161" />
|
||||
<SubTexture name="PETALS ALL0011" x="626" y="163" width="311" height="161" />
|
||||
<SubTexture name="PETALS ALL0012" x="939" y="163" width="311" height="161" />
|
||||
<SubTexture name="PETALS ALL0013" x="1252" y="163" width="311" height="161" />
|
||||
<SubTexture name="PETALS ALL0014" x="1252" y="163" width="311" height="161" />
|
||||
<SubTexture name="PETALS ALL0015" x="1565" y="163" width="311" height="161" />
|
||||
<SubTexture name="PETALS ALL0016" x="0" y="326" width="311" height="161" />
|
||||
<SubTexture name="PETALS ALL0017" x="313" y="326" width="311" height="161" />
|
||||
<SubTexture name="PETALS ALL0018" x="313" y="326" width="311" height="161" />
|
||||
<SubTexture name="PETALS ALL0019" x="626" y="326" width="311" height="161" />
|
||||
<SubTexture name="PETALS ALL0020" x="939" y="326" width="311" height="161" />
|
||||
<SubTexture name="PETALS ALL0021" x="1252" y="326" width="311" height="161" />
|
||||
<SubTexture name="PETALS ALL0022" x="1252" y="326" width="311" height="161" />
|
||||
<SubTexture name="PETALS ALL0023" x="1565" y="326" width="311" height="161" />
|
||||
<SubTexture name="PETALS ALL0024" x="0" y="489" width="311" height="161" />
|
||||
<SubTexture name="PETALS ALL0025" x="313" y="489" width="311" height="161" />
|
||||
<SubTexture name="PETALS ALL0026" x="626" y="489" width="311" height="161" />
|
||||
<SubTexture name="PETALS ALL0027" x="939" y="489" width="311" height="161" />
|
||||
<SubTexture name="PETALS ALL0028" x="1252" y="489" width="311" height="161" />
|
||||
<SubTexture name="PETALS ALL0029" x="1565" y="489" width="311" height="161" />
|
||||
<SubTexture name="PETALS ALL0030" x="0" y="652" width="311" height="161" />
|
||||
<SubTexture name="PETALS ALL0031" x="313" y="652" width="311" height="161" />
|
||||
<SubTexture name="PETALS ALL0032" x="626" y="652" width="311" height="161" />
|
||||
<SubTexture name="PETALS ALL0033" x="939" y="652" width="311" height="161" />
|
||||
<SubTexture name="PETALS ALL0034" x="1252" y="652" width="311" height="161" />
|
||||
<SubTexture name="PETALS ALL0035" x="1252" y="652" width="311" height="161" />
|
||||
<SubTexture name="PETALS ALL0036" x="1565" y="652" width="311" height="161" />
|
||||
<SubTexture name="PETALS ALL0037" x="0" y="815" width="311" height="161" />
|
||||
<SubTexture name="PETALS ALL0038" x="313" y="815" width="311" height="161" />
|
||||
<SubTexture name="PETALS ALL0039" x="313" y="815" width="311" height="161" />
|
||||
<SubTexture name="PETALS ALL0040" x="626" y="815" width="311" height="161" />
|
||||
<SubTexture name="PETALS ALL0041" x="939" y="815" width="311" height="161" />
|
||||
<SubTexture name="PETALS ALL0042" x="939" y="815" width="311" height="161" />
|
||||
<SubTexture name="PETALS ALL0043" x="1252" y="815" width="311" height="161" />
|
||||
<SubTexture name="PETALS ALL0044" x="1565" y="815" width="311" height="161" />
|
||||
<SubTexture name="PETALS ALL0045" x="0" y="978" width="311" height="161" />
|
||||
<SubTexture name="PETALS ALL0046" x="313" y="978" width="311" height="161" />
|
||||
<SubTexture name="PETALS ALL0047" x="626" y="978" width="311" height="161" />
|
||||
<SubTexture name="PETALS ALL0048" x="939" y="978" width="311" height="161" />
|
||||
<SubTexture name="PETALS ALL0049" x="1252" y="978" width="311" height="161" />
|
||||
<SubTexture name="PETALS ALL0050" x="1565" y="978" width="311" height="161" />
|
||||
<SubTexture name="PETALS ALL0051" x="0" y="1141" width="311" height="161" />
|
||||
<SubTexture name="PETALS ALL0052" x="313" y="1141" width="311" height="161" />
|
||||
<SubTexture name="PETALS ALL0053" x="313" y="1141" width="311" height="161" />
|
||||
<SubTexture name="PETALS ALL0054" x="626" y="1141" width="311" height="161" />
|
||||
<SubTexture name="PETALS ALL0055" x="0" y="0" width="311" height="161" />
|
||||
</TextureAtlas>
|
BIN
images/weeb/erect/weebBackTrees.png
Normal file
After Width: | Height: | Size: 1.7 KiB |
BIN
images/weeb/erect/weebSchool.png
Normal file
After Width: | Height: | Size: 4.9 KiB |
BIN
images/weeb/erect/weebSky.png
Normal file
After Width: | Height: | Size: 2.9 KiB |
BIN
images/weeb/erect/weebStreet.png
Normal file
After Width: | Height: | Size: 4.6 KiB |
BIN
images/weeb/erect/weebTrees.png
Normal file
After Width: | Height: | Size: 54 KiB |
20
images/weeb/erect/weebTrees.txt
Normal file
@ -0,0 +1,20 @@
|
||||
trees_0 = 0 0 512 512
|
||||
trees_1 = 513 0 512 512
|
||||
trees_2 = 1539 1026 512 512
|
||||
trees_3 = 2052 513 512 512
|
||||
trees_4 = 2565 0 512 512
|
||||
trees_5 = 3078 0 512 512
|
||||
trees_6 = 2565 513 512 512
|
||||
trees_7 = 2052 1026 512 512
|
||||
trees_8 = 2565 1026 512 512
|
||||
trees_9 = 3078 513 512 512
|
||||
trees_10 = 1026 0 512 512
|
||||
trees_11 = 0 513 512 512
|
||||
trees_12 = 513 513 512 512
|
||||
trees_13 = 0 1026 512 512
|
||||
trees_14 = 513 1026 512 512
|
||||
trees_15 = 1026 513 512 512
|
||||
trees_16 = 1026 1026 512 512
|
||||
trees_17 = 1539 0 512 512
|
||||
trees_18 = 1539 513 512 512
|
||||
trees_19 = 2052 0 512 512
|
BIN
images/weeb/erect/weebTreesBack.png
Normal file
After Width: | Height: | Size: 1.4 KiB |
BIN
images/weeb/evilSchoolBG.png
Normal file
After Width: | Height: | Size: 4.7 KiB |
BIN
images/weeb/evilSchoolFG.png
Normal file
After Width: | Height: | Size: 1.6 KiB |
BIN
images/weeb/petals.png
Normal file
After Width: | Height: | Size: 1.7 KiB |
59
images/weeb/petals.xml
Normal file
@ -0,0 +1,59 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<TextureAtlas imagePath="petals.png">
|
||||
<SubTexture name="PETALS ALL0000" x="0" y="0" width="311" height="161" />
|
||||
<SubTexture name="PETALS ALL0001" x="0" y="0" width="311" height="161" />
|
||||
<SubTexture name="PETALS ALL0002" x="313" y="0" width="311" height="161" />
|
||||
<SubTexture name="PETALS ALL0003" x="313" y="0" width="311" height="161" />
|
||||
<SubTexture name="PETALS ALL0004" x="626" y="0" width="311" height="161" />
|
||||
<SubTexture name="PETALS ALL0005" x="939" y="0" width="311" height="161" />
|
||||
<SubTexture name="PETALS ALL0006" x="1252" y="0" width="311" height="161" />
|
||||
<SubTexture name="PETALS ALL0007" x="1252" y="0" width="311" height="161" />
|
||||
<SubTexture name="PETALS ALL0008" x="1565" y="0" width="311" height="161" />
|
||||
<SubTexture name="PETALS ALL0009" x="0" y="163" width="311" height="161" />
|
||||
<SubTexture name="PETALS ALL0010" x="313" y="163" width="311" height="161" />
|
||||
<SubTexture name="PETALS ALL0011" x="626" y="163" width="311" height="161" />
|
||||
<SubTexture name="PETALS ALL0012" x="939" y="163" width="311" height="161" />
|
||||
<SubTexture name="PETALS ALL0013" x="1252" y="163" width="311" height="161" />
|
||||
<SubTexture name="PETALS ALL0014" x="1252" y="163" width="311" height="161" />
|
||||
<SubTexture name="PETALS ALL0015" x="1565" y="163" width="311" height="161" />
|
||||
<SubTexture name="PETALS ALL0016" x="0" y="326" width="311" height="161" />
|
||||
<SubTexture name="PETALS ALL0017" x="313" y="326" width="311" height="161" />
|
||||
<SubTexture name="PETALS ALL0018" x="313" y="326" width="311" height="161" />
|
||||
<SubTexture name="PETALS ALL0019" x="626" y="326" width="311" height="161" />
|
||||
<SubTexture name="PETALS ALL0020" x="939" y="326" width="311" height="161" />
|
||||
<SubTexture name="PETALS ALL0021" x="1252" y="326" width="311" height="161" />
|
||||
<SubTexture name="PETALS ALL0022" x="1252" y="326" width="311" height="161" />
|
||||
<SubTexture name="PETALS ALL0023" x="1565" y="326" width="311" height="161" />
|
||||
<SubTexture name="PETALS ALL0024" x="0" y="489" width="311" height="161" />
|
||||
<SubTexture name="PETALS ALL0025" x="313" y="489" width="311" height="161" />
|
||||
<SubTexture name="PETALS ALL0026" x="626" y="489" width="311" height="161" />
|
||||
<SubTexture name="PETALS ALL0027" x="939" y="489" width="311" height="161" />
|
||||
<SubTexture name="PETALS ALL0028" x="1252" y="489" width="311" height="161" />
|
||||
<SubTexture name="PETALS ALL0029" x="1565" y="489" width="311" height="161" />
|
||||
<SubTexture name="PETALS ALL0030" x="0" y="652" width="311" height="161" />
|
||||
<SubTexture name="PETALS ALL0031" x="313" y="652" width="311" height="161" />
|
||||
<SubTexture name="PETALS ALL0032" x="626" y="652" width="311" height="161" />
|
||||
<SubTexture name="PETALS ALL0033" x="939" y="652" width="311" height="161" />
|
||||
<SubTexture name="PETALS ALL0034" x="1252" y="652" width="311" height="161" />
|
||||
<SubTexture name="PETALS ALL0035" x="1252" y="652" width="311" height="161" />
|
||||
<SubTexture name="PETALS ALL0036" x="1565" y="652" width="311" height="161" />
|
||||
<SubTexture name="PETALS ALL0037" x="0" y="815" width="311" height="161" />
|
||||
<SubTexture name="PETALS ALL0038" x="313" y="815" width="311" height="161" />
|
||||
<SubTexture name="PETALS ALL0039" x="313" y="815" width="311" height="161" />
|
||||
<SubTexture name="PETALS ALL0040" x="626" y="815" width="311" height="161" />
|
||||
<SubTexture name="PETALS ALL0041" x="939" y="815" width="311" height="161" />
|
||||
<SubTexture name="PETALS ALL0042" x="939" y="815" width="311" height="161" />
|
||||
<SubTexture name="PETALS ALL0043" x="1252" y="815" width="311" height="161" />
|
||||
<SubTexture name="PETALS ALL0044" x="1565" y="815" width="311" height="161" />
|
||||
<SubTexture name="PETALS ALL0045" x="0" y="978" width="311" height="161" />
|
||||
<SubTexture name="PETALS ALL0046" x="313" y="978" width="311" height="161" />
|
||||
<SubTexture name="PETALS ALL0047" x="626" y="978" width="311" height="161" />
|
||||
<SubTexture name="PETALS ALL0048" x="939" y="978" width="311" height="161" />
|
||||
<SubTexture name="PETALS ALL0049" x="1252" y="978" width="311" height="161" />
|
||||
<SubTexture name="PETALS ALL0050" x="1565" y="978" width="311" height="161" />
|
||||
<SubTexture name="PETALS ALL0051" x="0" y="1141" width="311" height="161" />
|
||||
<SubTexture name="PETALS ALL0052" x="313" y="1141" width="311" height="161" />
|
||||
<SubTexture name="PETALS ALL0053" x="313" y="1141" width="311" height="161" />
|
||||
<SubTexture name="PETALS ALL0054" x="626" y="1141" width="311" height="161" />
|
||||
<SubTexture name="PETALS ALL0055" x="0" y="0" width="311" height="161" />
|
||||
</TextureAtlas>
|
BIN
images/weeb/pixelUI/arrowEndsNew.png
Normal file
After Width: | Height: | Size: 282 B |
BIN
images/weeb/pixelUI/arrows-pixels.png
Normal file
After Width: | Height: | Size: 1.8 KiB |
27
images/weeb/pixelUI/arrows-pixels.xml
Normal file
@ -0,0 +1,27 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<TextureAtlas imagePath="arrows-pixels.png">
|
||||
<SubTexture name="staticLeft0001" x="0" y="0" width="17" height="17" />
|
||||
<SubTexture name="staticDown0001" x="17" y="0" width="17" height="17" />
|
||||
<SubTexture name="staticUp0001" x="34" y="0" width="17" height="17" />
|
||||
<SubTexture name="staticRight0001" x="51" y="0" width="17" height="17" />
|
||||
<SubTexture name="noteLeft0001" x="0" y="17" width="17" height="17" />
|
||||
<SubTexture name="noteDown0001" x="17" y="17" width="17" height="17" />
|
||||
<SubTexture name="noteUp0001" x="34" y="17" width="17" height="17" />
|
||||
<SubTexture name="noteRight0001" x="51" y="17" width="17" height="17" />
|
||||
<SubTexture name="pressedLeft0001" x="0" y="17" width="17" height="17" />
|
||||
<SubTexture name="pressedDown0001" x="17" y="17" width="17" height="17" />
|
||||
<SubTexture name="pressedUp0001" x="34" y="17" width="17" height="17" />
|
||||
<SubTexture name="pressedRight0001" x="51" y="17" width="17" height="17" />
|
||||
<SubTexture name="pressedLeft0002" x="0" y="34" width="17" height="17" />
|
||||
<SubTexture name="pressedDown0002" x="17" y="34" width="17" height="17" />
|
||||
<SubTexture name="pressedUp0002" x="34" y="34" width="17" height="17" />
|
||||
<SubTexture name="pressedRight0002" x="51" y="34" width="17" height="17" />
|
||||
<SubTexture name="confirmLeft0001" x="0" y="51" width="17" height="17" />
|
||||
<SubTexture name="confirmDown0001" x="17" y="51" width="17" height="17" />
|
||||
<SubTexture name="confirmUp0001" x="34" y="51" width="17" height="17" />
|
||||
<SubTexture name="confirmRight0001" x="51" y="51" width="17" height="17" />
|
||||
<SubTexture name="confirmLeft0002" x="0" y="68" width="17" height="17" />
|
||||
<SubTexture name="confirmDown0002" x="17" y="68" width="17" height="17" />
|
||||
<SubTexture name="confirmUp0002" x="34" y="68" width="17" height="17" />
|
||||
<SubTexture name="confirmRight0002" x="51" y="68" width="17" height="17" />
|
||||
</TextureAtlas>
|
BIN
images/weeb/pixelUI/dialogueBox-evil.png
Normal file
After Width: | Height: | Size: 259 B |
15
images/weeb/pixelUI/dialogueBox-evil.xml
Normal file
@ -0,0 +1,15 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<TextureAtlas imagePath="dialogueBox-evil.png">
|
||||
<SubTexture name="Spirit Textbox spawn instance 10000" x="0" y="0" width="249" height="145" />
|
||||
<SubTexture name="Spirit Textbox spawn instance 10001" x="0" y="0" width="249" height="145" />
|
||||
<SubTexture name="Spirit Textbox spawn instance 10002" x="259" y="0" width="249" height="145" />
|
||||
<SubTexture name="Spirit Textbox spawn instance 10003" x="259" y="0" width="249" height="145" />
|
||||
<SubTexture name="Spirit Textbox spawn instance 10004" x="0" y="155" width="249" height="145" />
|
||||
<SubTexture name="Spirit Textbox spawn instance 10005" x="0" y="155" width="249" height="145" />
|
||||
<SubTexture name="Spirit Textbox spawn instance 10006" x="259" y="155" width="249" height="145" />
|
||||
<SubTexture name="Spirit Textbox spawn instance 10007" x="259" y="155" width="249" height="145" />
|
||||
<SubTexture name="Spirit Textbox spawn instance 10008" x="0" y="310" width="249" height="145" />
|
||||
<SubTexture name="Spirit Textbox spawn instance 10009" x="0" y="310" width="249" height="145" />
|
||||
<SubTexture name="Spirit Textbox spawn instance 10010" x="259" y="310" width="249" height="145" />
|
||||
<SubTexture name="Spirit Textbox spawn instance 10011" x="259" y="310" width="249" height="145" />
|
||||
</TextureAtlas>
|
BIN
images/weeb/pixelUI/dialogueBox-evilNew.png
Normal file
After Width: | Height: | Size: 398 B |
18
images/weeb/pixelUI/dialogueBox-evilNew.xml
Normal file
@ -0,0 +1,18 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<TextureAtlas imagePath="dialogueBoxes-evilNew.png">
|
||||
<SubTexture name="Spirit Text Box Click0000" x="4" y="4" width="248" height="144" />
|
||||
<SubTexture name="Spirit Text Box Sentence Complete0000" x="256" y="4" width="248" height="144" />
|
||||
<SubTexture name="Spirit Textbox0000" x="508" y="4" width="248" height="144" />
|
||||
<SubTexture name="Spirit Textbox spawn0000" x="760" y="4" width="248" height="144" />
|
||||
<SubTexture name="Spirit Textbox spawn0001" x="760" y="4" width="248" height="144" />
|
||||
<SubTexture name="Spirit Textbox spawn0002" x="4" y="152" width="248" height="144" />
|
||||
<SubTexture name="Spirit Textbox spawn0003" x="4" y="152" width="248" height="144" />
|
||||
<SubTexture name="Spirit Textbox spawn0004" x="256" y="152" width="248" height="144" />
|
||||
<SubTexture name="Spirit Textbox spawn0005" x="256" y="152" width="248" height="144" />
|
||||
<SubTexture name="Spirit Textbox spawn0006" x="508" y="152" width="248" height="144" />
|
||||
<SubTexture name="Spirit Textbox spawn0007" x="508" y="152" width="248" height="144" />
|
||||
<SubTexture name="Spirit Textbox spawn0008" x="760" y="152" width="248" height="144" />
|
||||
<SubTexture name="Spirit Textbox spawn0009" x="760" y="152" width="248" height="144" />
|
||||
<SubTexture name="Spirit Textbox spawn0010" x="508" y="4" width="248" height="144" />
|
||||
<SubTexture name="Spirit Textbox spawn0011" x="508" y="4" width="248" height="144" />
|
||||
</TextureAtlas>
|
BIN
images/weeb/pixelUI/dialogueBox-new.png
Normal file
After Width: | Height: | Size: 11 KiB |
61
images/weeb/pixelUI/dialogueBox-new.xml
Normal file
@ -0,0 +1,61 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<TextureAtlas imagePath="Text_Boxes.png">
|
||||
<SubTexture name="SENPAI ANGRY IMPACT SPEECH0000" x="4" y="4" width="248" height="144" />
|
||||
<SubTexture name="SENPAI ANGRY IMPACT SPEECH0001" x="256" y="4" width="248" height="144" />
|
||||
<SubTexture name="SENPAI ANGRY IMPACT SPEECH0002" x="508" y="4" width="248" height="144" />
|
||||
<SubTexture name="SENPAI ANGRY IMPACT SPEECH0003" x="760" y="4" width="248" height="144" />
|
||||
<SubTexture name="SENPAI ANGRY IMPACT SPEECH0004" x="4" y="152" width="248" height="144" />
|
||||
<SubTexture name="SENPAI ANGRY IMPACT SPEECH0005" x="4" y="152" width="248" height="144" />
|
||||
<SubTexture name="SENPAI ANGRY IMPACT SPEECH0006" x="256" y="152" width="248" height="144" />
|
||||
<SubTexture name="SENPAI ANGRY IMPACT SPEECH0007" x="256" y="152" width="248" height="144" />
|
||||
<SubTexture name="Text Box Appear0000" x="508" y="152" width="248" height="144" />
|
||||
<SubTexture name="Text Box Appear0001" x="760" y="152" width="248" height="144" />
|
||||
<SubTexture name="Text Box Appear0002" x="4" y="300" width="248" height="144" />
|
||||
<SubTexture name="Text Box Appear0003" x="256" y="300" width="248" height="144" />
|
||||
<SubTexture name="Text Box Appear0004" x="256" y="300" width="248" height="144" />
|
||||
<SubTexture name="Text Box Speaking0001" x="256" y="300" width="248" height="144" />
|
||||
<SubTexture name="Text Box CLICK0000" x="508" y="300" width="248" height="144" />
|
||||
<SubTexture name="Text Box CLICK0001" x="508" y="300" width="248" height="144" />
|
||||
<SubTexture name="Text Box CLICK0002" x="760" y="300" width="248" height="144" />
|
||||
<SubTexture name="Text Box CLICK0003" x="256" y="300" width="248" height="144" />
|
||||
<SubTexture name="Text Box Sentence End0000" x="4" y="448" width="248" height="144" />
|
||||
<SubTexture name="Text Box Sentence End0001" x="256" y="448" width="248" height="144" />
|
||||
<SubTexture name="Text Box Sentence End0002" x="256" y="448" width="248" height="144" />
|
||||
<SubTexture name="Text Box Sentence End0003" x="508" y="448" width="248" height="144" />
|
||||
<SubTexture name="Text Box Sentence End0004" x="508" y="448" width="248" height="144" />
|
||||
<SubTexture name="Text Box Sentence End0005" x="508" y="448" width="248" height="144" />
|
||||
<SubTexture name="Text Box Sentence End0006" x="508" y="448" width="248" height="144" />
|
||||
<SubTexture name="Text Box Sentence End0007" x="508" y="448" width="248" height="144" />
|
||||
<SubTexture name="Text Box Sentence End0008" x="508" y="448" width="248" height="144" />
|
||||
<SubTexture name="Text Box Sentence End0009" x="508" y="448" width="248" height="144" />
|
||||
<SubTexture name="Text Box Sentence End0010" x="508" y="448" width="248" height="144" />
|
||||
<SubTexture name="Text Box Sentence End0011" x="508" y="448" width="248" height="144" />
|
||||
<SubTexture name="Text Box Sentence End0012" x="508" y="448" width="248" height="144" />
|
||||
<SubTexture name="Text Box Sentence End0013" x="508" y="448" width="248" height="144" />
|
||||
<SubTexture name="Text Box wait to click0000" x="508" y="448" width="248" height="144" />
|
||||
<SubTexture name="Text Box wait to click0001" x="508" y="448" width="248" height="144" />
|
||||
<SubTexture name="Text Box wait to click0002" x="508" y="448" width="248" height="144" />
|
||||
<SubTexture name="Text Box wait to click0003" x="508" y="448" width="248" height="144" />
|
||||
<SubTexture name="Text Box wait to click0004" x="508" y="448" width="248" height="144" />
|
||||
<SubTexture name="Text Box wait to click0005" x="508" y="448" width="248" height="144" />
|
||||
<SubTexture name="Text Box wait to click0006" x="508" y="448" width="248" height="144" />
|
||||
<SubTexture name="Text Box wait to click0007" x="508" y="448" width="248" height="144" />
|
||||
<SubTexture name="Text Box wait to click0008" x="760" y="300" width="248" height="144" />
|
||||
<SubTexture name="Text Box wait to click0009" x="760" y="300" width="248" height="144" />
|
||||
<SubTexture name="Text Box wait to click0010" x="508" y="448" width="248" height="144" />
|
||||
<SubTexture name="Text Box wait to click0011" x="508" y="448" width="248" height="144" />
|
||||
<SubTexture name="Text Box wait to click0012" x="508" y="448" width="248" height="144" />
|
||||
<SubTexture name="Text Box wait to click0013" x="508" y="448" width="248" height="144" />
|
||||
<SubTexture name="Text Box wait to click0014" x="508" y="448" width="248" height="144" />
|
||||
<SubTexture name="Text Box wait to click0015" x="508" y="448" width="248" height="144" />
|
||||
<SubTexture name="Text Box wait to click0016" x="508" y="448" width="248" height="144" />
|
||||
<SubTexture name="Text Box wait to click0017" x="508" y="448" width="248" height="144" />
|
||||
<SubTexture name="Text Box wait to click0018" x="508" y="448" width="248" height="144" />
|
||||
<SubTexture name="Text Box wait to click0019" x="508" y="448" width="248" height="144" />
|
||||
<SubTexture name="Text Box wait to click0020" x="508" y="448" width="248" height="144" />
|
||||
<SubTexture name="Text Box wait to click0021" x="508" y="448" width="248" height="144" />
|
||||
<SubTexture name="Text Box wait to click0022" x="508" y="448" width="248" height="144" />
|
||||
<SubTexture name="Text Box wait to click0023" x="508" y="448" width="248" height="144" />
|
||||
<SubTexture name="Text Box wait to click0024" x="508" y="448" width="248" height="144" />
|
||||
<SubTexture name="Text Box wait to click0025" x="508" y="448" width="248" height="144" />
|
||||
</TextureAtlas>
|
BIN
images/weeb/pixelUI/dialogueBox-pixel.png
Normal file
After Width: | Height: | Size: 2.0 KiB |
8
images/weeb/pixelUI/dialogueBox-pixel.xml
Normal file
@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<TextureAtlas imagePath="dialogueBox-pixel.png">
|
||||
<SubTexture name="Text Box Appear instance 10000" x="0" y="0" width="249" height="144" />
|
||||
<SubTexture name="Text Box Appear instance 10001" x="259" y="0" width="249" height="144" />
|
||||
<SubTexture name="Text Box Appear instance 10002" x="0" y="154" width="249" height="144" />
|
||||
<SubTexture name="Text Box Appear instance 10003" x="259" y="154" width="249" height="144" />
|
||||
<SubTexture name="Text Box Appear instance 10004" x="259" y="154" width="249" height="144" />
|
||||
</TextureAtlas>
|
BIN
images/weeb/pixelUI/dialogueBox-senpaiMad.png
Normal file
After Width: | Height: | Size: 8.3 KiB |
11
images/weeb/pixelUI/dialogueBox-senpaiMad.xml
Normal file
@ -0,0 +1,11 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<TextureAtlas imagePath="dialogueBox-senpaiMad.png">
|
||||
<SubTexture name="SENPAI ANGRY IMPACT SPEECH instance 10000" x="0" y="0" width="249" height="144" />
|
||||
<SubTexture name="SENPAI ANGRY IMPACT SPEECH instance 10001" x="259" y="0" width="249" height="144" />
|
||||
<SubTexture name="SENPAI ANGRY IMPACT SPEECH instance 10002" x="0" y="154" width="249" height="144" />
|
||||
<SubTexture name="SENPAI ANGRY IMPACT SPEECH instance 10003" x="259" y="154" width="249" height="144" />
|
||||
<SubTexture name="SENPAI ANGRY IMPACT SPEECH instance 10004" x="0" y="308" width="249" height="144" />
|
||||
<SubTexture name="SENPAI ANGRY IMPACT SPEECH instance 10005" x="0" y="308" width="249" height="144" />
|
||||
<SubTexture name="SENPAI ANGRY IMPACT SPEECH instance 10006" x="259" y="308" width="249" height="144" />
|
||||
<SubTexture name="SENPAI ANGRY IMPACT SPEECH instance 10007" x="259" y="308" width="249" height="144" />
|
||||
</TextureAtlas>
|
BIN
images/weeb/pixelUI/hand_textbox.png
Normal file
After Width: | Height: | Size: 181 B |
BIN
images/weeb/portrait-boyfriend.png
Normal file
After Width: | Height: | Size: 3.3 KiB |
13
images/weeb/portrait-boyfriend.xml
Normal file
@ -0,0 +1,13 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<TextureAtlas imagePath="spritesheet.png">
|
||||
<SubTexture name="portraitEnter0000" x="0" y="0" width="70" height="45" frameX="0" frameY="13" frameWidth="70" frameHeight="45" />
|
||||
<SubTexture name="portraitEnter0001" x="0" y="0" width="70" height="45" frameX="0" frameY="13" frameWidth="70" frameHeight="45" />
|
||||
<SubTexture name="portraitEnter0002" x="70" y="0" width="70" height="45" frameX="0" frameY="13" frameWidth="70" frameHeight="45" />
|
||||
<SubTexture name="portraitEnter0003" x="70" y="0" width="70" height="45" frameX="0" frameY="13" frameWidth="70" frameHeight="45" />
|
||||
<SubTexture name="portraitEnter0004" x="0" y="45" width="70" height="45" frameX="0" frameY="13" frameWidth="70" frameHeight="45" />
|
||||
<SubTexture name="portraitEnter0005" x="0" y="45" width="70" height="45" frameX="0" frameY="13" frameWidth="70" frameHeight="45" />
|
||||
<SubTexture name="portraitEnter0006" x="70" y="45" width="70" height="45" frameX="0" frameY="13" frameWidth="70" frameHeight="45" />
|
||||
<SubTexture name="portraitEnter0007" x="70" y="45" width="70" height="45" frameX="0" frameY="13" frameWidth="70" frameHeight="45" />
|
||||
<SubTexture name="portraitTalk0000" x="70" y="45" width="70" height="45" frameX="0" frameY="13" frameWidth="70" frameHeight="45" />
|
||||
<SubTexture name="portraitTalk0001" x="70" y="45" width="70" height="45" frameX="0" frameY="13" frameWidth="70" frameHeight="45" />
|
||||
</TextureAtlas>
|
BIN
images/weeb/portrait-nene-peeved.png
Normal file
After Width: | Height: | Size: 3.6 KiB |
13
images/weeb/portrait-nene-peeved.xml
Normal file
@ -0,0 +1,13 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<TextureAtlas imagePath="spritesheet.png">
|
||||
<SubTexture name="portraitEnter0000" x="0" y="0" width="63" height="51" frameX="-5" frameY="-7" frameWidth="72" frameHeight="58" />
|
||||
<SubTexture name="portraitEnter0001" x="0" y="0" width="63" height="51" frameX="-5" frameY="-7" frameWidth="72" frameHeight="58" />
|
||||
<SubTexture name="portraitEnter0002" x="63" y="0" width="63" height="51" frameX="-5" frameY="-7" frameWidth="72" frameHeight="58" />
|
||||
<SubTexture name="portraitEnter0003" x="63" y="0" width="63" height="51" frameX="-5" frameY="-7" frameWidth="72" frameHeight="58" />
|
||||
<SubTexture name="portraitEnter0004" x="0" y="51" width="63" height="51" frameX="-5" frameY="-7" frameWidth="72" frameHeight="58" />
|
||||
<SubTexture name="portraitEnter0005" x="0" y="51" width="63" height="51" frameX="-5" frameY="-7" frameWidth="72" frameHeight="58" />
|
||||
<SubTexture name="portraitEnter0006" x="63" y="51" width="63" height="51" frameX="-5" frameY="-7" frameWidth="72" frameHeight="58" />
|
||||
<SubTexture name="portraitEnter0007" x="63" y="51" width="63" height="51" frameX="-5" frameY="-7" frameWidth="72" frameHeight="58" />
|
||||
<SubTexture name="portraitTalk0000" x="63" y="51" width="63" height="51" frameX="-5" frameY="-7" frameWidth="72" frameHeight="58" />
|
||||
<SubTexture name="portraitTalk0001" x="63" y="51" width="63" height="51" frameX="-5" frameY="-7" frameWidth="72" frameHeight="58" />
|
||||
</TextureAtlas>
|
BIN
images/weeb/portrait-nene.png
Normal file
After Width: | Height: | Size: 3.6 KiB |
13
images/weeb/portrait-nene.xml
Normal file
@ -0,0 +1,13 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<TextureAtlas imagePath="spritesheet.png">
|
||||
<SubTexture name="portraitEnter0000" x="0" y="0" width="63" height="51" frameX="4" frameY="7" frameWidth="63" frameHeight="51" />
|
||||
<SubTexture name="portraitEnter0001" x="0" y="0" width="63" height="51" frameX="4" frameY="7" frameWidth="63" frameHeight="51" />
|
||||
<SubTexture name="portraitEnter0002" x="63" y="0" width="63" height="51" frameX="4" frameY="7" frameWidth="63" frameHeight="51" />
|
||||
<SubTexture name="portraitEnter0003" x="63" y="0" width="63" height="51" frameX="4" frameY="7" frameWidth="63" frameHeight="51" />
|
||||
<SubTexture name="portraitEnter0004" x="0" y="51" width="63" height="51" frameX="4" frameY="7" frameWidth="63" frameHeight="51" />
|
||||
<SubTexture name="portraitEnter0005" x="0" y="51" width="63" height="51" frameX="4" frameY="7" frameWidth="63" frameHeight="51" />
|
||||
<SubTexture name="portraitEnter0006" x="63" y="51" width="63" height="51" frameX="4" frameY="7" frameWidth="63" frameHeight="51" />
|
||||
<SubTexture name="portraitEnter0007" x="63" y="51" width="63" height="51" frameX="4" frameY="7" frameWidth="63" frameHeight="51" />
|
||||
<SubTexture name="portraitTalk0000" x="63" y="51" width="63" height="51" frameX="4" frameY="7" frameWidth="63" frameHeight="51" />
|
||||
<SubTexture name="portraitTalk0001" x="63" y="51" width="63" height="51" frameX="4" frameY="7" frameWidth="63" frameHeight="51" />
|
||||
</TextureAtlas>
|
BIN
images/weeb/portrait-pico-peeved.png
Normal file
After Width: | Height: | Size: 3.0 KiB |
13
images/weeb/portrait-pico-peeved.xml
Normal file
@ -0,0 +1,13 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<TextureAtlas imagePath="spritesheet.png">
|
||||
<SubTexture name="portraitEnter0000" x="0" y="0" width="58" height="53" frameX="-8" frameY="-5" frameWidth="72" frameHeight="58" />
|
||||
<SubTexture name="portraitEnter0001" x="0" y="0" width="58" height="53" frameX="-8" frameY="-5" frameWidth="72" frameHeight="58" />
|
||||
<SubTexture name="portraitEnter0002" x="58" y="0" width="58" height="53" frameX="-8" frameY="-5" frameWidth="72" frameHeight="58" />
|
||||
<SubTexture name="portraitEnter0003" x="58" y="0" width="58" height="53" frameX="-8" frameY="-5" frameWidth="72" frameHeight="58" />
|
||||
<SubTexture name="portraitEnter0004" x="0" y="53" width="58" height="53" frameX="-8" frameY="-5" frameWidth="72" frameHeight="58" />
|
||||
<SubTexture name="portraitEnter0005" x="0" y="53" width="58" height="53" frameX="-8" frameY="-5" frameWidth="72" frameHeight="58" />
|
||||
<SubTexture name="portraitEnter0006" x="58" y="53" width="58" height="53" frameX="-8" frameY="-5" frameWidth="72" frameHeight="58" />
|
||||
<SubTexture name="portraitEnter0007" x="58" y="53" width="58" height="53" frameX="-8" frameY="-5" frameWidth="72" frameHeight="58" />
|
||||
<SubTexture name="portraitTalk0000" x="58" y="53" width="58" height="53" frameX="-8" frameY="-5" frameWidth="72" frameHeight="58" />
|
||||
<SubTexture name="portraitTalk0001" x="58" y="53" width="58" height="53" frameX="-8" frameY="-5" frameWidth="72" frameHeight="58" />
|
||||
</TextureAtlas>
|
BIN
images/weeb/portrait-pico.png
Normal file
After Width: | Height: | Size: 3.3 KiB |
13
images/weeb/portrait-pico.xml
Normal file
@ -0,0 +1,13 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<TextureAtlas imagePath="spritesheet.png">
|
||||
<SubTexture name="portraitEnter0000" x="0" y="0" width="58" height="53" frameX="7" frameY="5" frameWidth="58" frameHeight="53" />
|
||||
<SubTexture name="portraitEnter0001" x="0" y="0" width="58" height="53" frameX="7" frameY="5" frameWidth="58" frameHeight="53" />
|
||||
<SubTexture name="portraitEnter0002" x="58" y="0" width="58" height="53" frameX="7" frameY="5" frameWidth="58" frameHeight="53" />
|
||||
<SubTexture name="portraitEnter0003" x="58" y="0" width="58" height="53" frameX="7" frameY="5" frameWidth="58" frameHeight="53" />
|
||||
<SubTexture name="portraitEnter0004" x="0" y="53" width="58" height="53" frameX="7" frameY="5" frameWidth="58" frameHeight="53" />
|
||||
<SubTexture name="portraitEnter0005" x="0" y="53" width="58" height="53" frameX="7" frameY="5" frameWidth="58" frameHeight="53" />
|
||||
<SubTexture name="portraitEnter0006" x="58" y="53" width="58" height="53" frameX="7" frameY="5" frameWidth="58" frameHeight="53" />
|
||||
<SubTexture name="portraitEnter0007" x="58" y="53" width="58" height="53" frameX="7" frameY="5" frameWidth="58" frameHeight="53" />
|
||||
<SubTexture name="portraitTalk0000" x="58" y="53" width="58" height="53" frameX="7" frameY="5" frameWidth="58" frameHeight="53" />
|
||||
<SubTexture name="portraitTalk0001" x="58" y="53" width="58" height="53" frameX="7" frameY="5" frameWidth="58" frameHeight="53" />
|
||||
</TextureAtlas>
|
BIN
images/weeb/portrait-senpai-angry.png
Normal file
After Width: | Height: | Size: 5.1 KiB |
13
images/weeb/portrait-senpai-angry.xml
Normal file
@ -0,0 +1,13 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<TextureAtlas imagePath="spritesheet.png">
|
||||
<SubTexture name="portraitEnter0000" x="0" y="0" width="66" height="58" frameX="4" frameY="0" frameWidth="66" frameHeight="58" />
|
||||
<SubTexture name="portraitEnter0001" x="0" y="0" width="66" height="58" frameX="4" frameY="0" frameWidth="66" frameHeight="58" />
|
||||
<SubTexture name="portraitEnter0002" x="66" y="0" width="66" height="58" frameX="4" frameY="0" frameWidth="66" frameHeight="58" />
|
||||
<SubTexture name="portraitEnter0003" x="66" y="0" width="66" height="58" frameX="4" frameY="0" frameWidth="66" frameHeight="58" />
|
||||
<SubTexture name="portraitEnter0004" x="0" y="58" width="66" height="58" frameX="4" frameY="0" frameWidth="66" frameHeight="58" />
|
||||
<SubTexture name="portraitEnter0005" x="0" y="58" width="66" height="58" frameX="4" frameY="0" frameWidth="66" frameHeight="58" />
|
||||
<SubTexture name="portraitEnter0006" x="66" y="58" width="66" height="58" frameX="4" frameY="0" frameWidth="66" frameHeight="58" />
|
||||
<SubTexture name="portraitEnter0007" x="66" y="58" width="66" height="58" frameX="4" frameY="0" frameWidth="66" frameHeight="58" />
|
||||
<SubTexture name="portraitTalk0000" x="66" y="58" width="66" height="58" frameX="4" frameY="0" frameWidth="66" frameHeight="58" />
|
||||
<SubTexture name="portraitTalk0001" x="66" y="58" width="66" height="58" frameX="4" frameY="0" frameWidth="66" frameHeight="58" />
|
||||
</TextureAtlas>
|
BIN
images/weeb/portrait-senpai-bwuh.png
Normal file
After Width: | Height: | Size: 4.8 KiB |
13
images/weeb/portrait-senpai-bwuh.xml
Normal file
@ -0,0 +1,13 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<TextureAtlas imagePath="spritesheet.png">
|
||||
<SubTexture name="portraitEnter0000" x="0" y="0" width="66" height="58" frameX="-5" frameY="0" frameWidth="72" frameHeight="58" />
|
||||
<SubTexture name="portraitEnter0001" x="0" y="0" width="66" height="58" frameX="-5" frameY="0" frameWidth="72" frameHeight="58" />
|
||||
<SubTexture name="portraitEnter0002" x="66" y="0" width="66" height="58" frameX="-5" frameY="0" frameWidth="72" frameHeight="58" />
|
||||
<SubTexture name="portraitEnter0003" x="66" y="0" width="66" height="58" frameX="-5" frameY="0" frameWidth="72" frameHeight="58" />
|
||||
<SubTexture name="portraitEnter0004" x="0" y="58" width="66" height="58" frameX="-5" frameY="0" frameWidth="72" frameHeight="58" />
|
||||
<SubTexture name="portraitEnter0005" x="0" y="58" width="66" height="58" frameX="-5" frameY="0" frameWidth="72" frameHeight="58" />
|
||||
<SubTexture name="portraitEnter0006" x="66" y="58" width="66" height="58" frameX="-5" frameY="0" frameWidth="72" frameHeight="58" />
|
||||
<SubTexture name="portraitEnter0007" x="66" y="58" width="66" height="58" frameX="-5" frameY="0" frameWidth="72" frameHeight="58" />
|
||||
<SubTexture name="portraitTalk0000" x="66" y="58" width="66" height="58" frameX="-5" frameY="0" frameWidth="72" frameHeight="58" />
|
||||
<SubTexture name="portraitTalk0001" x="66" y="58" width="66" height="58" frameX="-5" frameY="0" frameWidth="72" frameHeight="58" />
|
||||
</TextureAtlas>
|
BIN
images/weeb/portrait-senpai.png
Normal file
After Width: | Height: | Size: 5.4 KiB |
13
images/weeb/portrait-senpai.xml
Normal file
@ -0,0 +1,13 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<TextureAtlas imagePath="spritesheet.png">
|
||||
<SubTexture name="portraitEnter0000" x="0" y="0" width="63" height="57" frameX="5" frameY="1" frameWidth="63" frameHeight="57" />
|
||||
<SubTexture name="portraitEnter0001" x="0" y="0" width="63" height="57" frameX="5" frameY="1" frameWidth="63" frameHeight="57" />
|
||||
<SubTexture name="portraitEnter0002" x="63" y="0" width="63" height="57" frameX="5" frameY="1" frameWidth="63" frameHeight="57" />
|
||||
<SubTexture name="portraitEnter0003" x="63" y="0" width="63" height="57" frameX="5" frameY="1" frameWidth="63" frameHeight="57" />
|
||||
<SubTexture name="portraitEnter0004" x="0" y="57" width="63" height="57" frameX="5" frameY="1" frameWidth="63" frameHeight="57" />
|
||||
<SubTexture name="portraitEnter0005" x="0" y="57" width="63" height="57" frameX="5" frameY="1" frameWidth="63" frameHeight="57" />
|
||||
<SubTexture name="portraitEnter0006" x="63" y="57" width="63" height="57" frameX="5" frameY="1" frameWidth="63" frameHeight="57" />
|
||||
<SubTexture name="portraitEnter0007" x="63" y="57" width="63" height="57" frameX="5" frameY="1" frameWidth="63" frameHeight="57" />
|
||||
<SubTexture name="portraitTalk0000" x="63" y="57" width="63" height="57" frameX="5" frameY="1" frameWidth="63" frameHeight="57" />
|
||||
<SubTexture name="portraitTalk0001" x="63" y="57" width="63" height="57" frameX="5" frameY="1" frameWidth="63" frameHeight="57" />
|
||||
</TextureAtlas>
|
BIN
images/weeb/senpaiCrazy.png
Normal file
After Width: | Height: | Size: 5.6 KiB |
128
images/weeb/senpaiCrazy.xml
Normal file
@ -0,0 +1,128 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<TextureAtlas imagePath="senpaiCrazy.png">
|
||||
<SubTexture name="Senpai Pre Explosion instance 10000" x="0" y="0" width="234" height="168" frameX="-18" frameY="0" frameWidth="252" frameHeight="168" />
|
||||
<SubTexture name="Senpai Pre Explosion instance 10001" x="244" y="0" width="230" height="164" frameX="-18" frameY="0" frameWidth="252" frameHeight="168" />
|
||||
<SubTexture name="Senpai Pre Explosion instance 10002" x="244" y="0" width="230" height="164" frameX="-18" frameY="0" frameWidth="252" frameHeight="168" />
|
||||
<SubTexture name="Senpai Pre Explosion instance 10003" x="484" y="0" width="230" height="164" frameX="-18" frameY="0" frameWidth="252" frameHeight="168" />
|
||||
<SubTexture name="Senpai Pre Explosion instance 10004" x="484" y="0" width="230" height="164" frameX="-18" frameY="0" frameWidth="252" frameHeight="168" />
|
||||
<SubTexture name="Senpai Pre Explosion instance 10005" x="484" y="0" width="230" height="164" frameX="-18" frameY="0" frameWidth="252" frameHeight="168" />
|
||||
<SubTexture name="Senpai Pre Explosion instance 10006" x="724" y="0" width="230" height="164" frameX="-18" frameY="0" frameWidth="252" frameHeight="168" />
|
||||
<SubTexture name="Senpai Pre Explosion instance 10007" x="724" y="0" width="230" height="164" frameX="-18" frameY="0" frameWidth="252" frameHeight="168" />
|
||||
<SubTexture name="Senpai Pre Explosion instance 10008" x="0" y="178" width="230" height="164" frameX="-18" frameY="0" frameWidth="252" frameHeight="168" />
|
||||
<SubTexture name="Senpai Pre Explosion instance 10009" x="240" y="178" width="230" height="164" frameX="-18" frameY="0" frameWidth="252" frameHeight="168" />
|
||||
<SubTexture name="Senpai Pre Explosion instance 10010" x="240" y="178" width="230" height="164" frameX="-18" frameY="0" frameWidth="252" frameHeight="168" />
|
||||
<SubTexture name="Senpai Pre Explosion instance 10011" x="480" y="178" width="230" height="164" frameX="-18" frameY="0" frameWidth="252" frameHeight="168" />
|
||||
<SubTexture name="Senpai Pre Explosion instance 10012" x="480" y="178" width="230" height="164" frameX="-18" frameY="0" frameWidth="252" frameHeight="168" />
|
||||
<SubTexture name="Senpai Pre Explosion instance 10013" x="480" y="178" width="230" height="164" frameX="-18" frameY="0" frameWidth="252" frameHeight="168" />
|
||||
<SubTexture name="Senpai Pre Explosion instance 10014" x="480" y="178" width="230" height="164" frameX="-18" frameY="0" frameWidth="252" frameHeight="168" />
|
||||
<SubTexture name="Senpai Pre Explosion instance 10015" x="480" y="178" width="230" height="164" frameX="-18" frameY="0" frameWidth="252" frameHeight="168" />
|
||||
<SubTexture name="Senpai Pre Explosion instance 10016" x="480" y="178" width="230" height="164" frameX="-18" frameY="0" frameWidth="252" frameHeight="168" />
|
||||
<SubTexture name="Senpai Pre Explosion instance 10017" x="720" y="178" width="230" height="164" frameX="-18" frameY="0" frameWidth="252" frameHeight="168" />
|
||||
<SubTexture name="Senpai Pre Explosion instance 10018" x="720" y="178" width="230" height="164" frameX="-18" frameY="0" frameWidth="252" frameHeight="168" />
|
||||
<SubTexture name="Senpai Pre Explosion instance 10019" x="480" y="178" width="230" height="164" frameX="-18" frameY="0" frameWidth="252" frameHeight="168" />
|
||||
<SubTexture name="Senpai Pre Explosion instance 10020" x="480" y="178" width="230" height="164" frameX="-18" frameY="0" frameWidth="252" frameHeight="168" />
|
||||
<SubTexture name="Senpai Pre Explosion instance 10021" x="480" y="178" width="230" height="164" frameX="-18" frameY="0" frameWidth="252" frameHeight="168" />
|
||||
<SubTexture name="Senpai Pre Explosion instance 10022" x="480" y="178" width="230" height="164" frameX="-18" frameY="0" frameWidth="252" frameHeight="168" />
|
||||
<SubTexture name="Senpai Pre Explosion instance 10023" x="480" y="178" width="230" height="164" frameX="-18" frameY="0" frameWidth="252" frameHeight="168" />
|
||||
<SubTexture name="Senpai Pre Explosion instance 10024" x="480" y="178" width="230" height="164" frameX="-18" frameY="0" frameWidth="252" frameHeight="168" />
|
||||
<SubTexture name="Senpai Pre Explosion instance 10025" x="0" y="352" width="230" height="164" frameX="-18" frameY="0" frameWidth="252" frameHeight="168" />
|
||||
<SubTexture name="Senpai Pre Explosion instance 10026" x="0" y="352" width="230" height="164" frameX="-18" frameY="0" frameWidth="252" frameHeight="168" />
|
||||
<SubTexture name="Senpai Pre Explosion instance 10027" x="480" y="178" width="230" height="164" frameX="-18" frameY="0" frameWidth="252" frameHeight="168" />
|
||||
<SubTexture name="Senpai Pre Explosion instance 10028" x="480" y="178" width="230" height="164" frameX="-18" frameY="0" frameWidth="252" frameHeight="168" />
|
||||
<SubTexture name="Senpai Pre Explosion instance 10029" x="480" y="178" width="230" height="164" frameX="-18" frameY="0" frameWidth="252" frameHeight="168" />
|
||||
<SubTexture name="Senpai Pre Explosion instance 10030" x="480" y="178" width="230" height="164" frameX="-18" frameY="0" frameWidth="252" frameHeight="168" />
|
||||
<SubTexture name="Senpai Pre Explosion instance 10031" x="720" y="178" width="230" height="164" frameX="-18" frameY="0" frameWidth="252" frameHeight="168" />
|
||||
<SubTexture name="Senpai Pre Explosion instance 10032" x="480" y="178" width="230" height="164" frameX="-18" frameY="0" frameWidth="252" frameHeight="168" />
|
||||
<SubTexture name="Senpai Pre Explosion instance 10033" x="480" y="178" width="230" height="164" frameX="-18" frameY="0" frameWidth="252" frameHeight="168" />
|
||||
<SubTexture name="Senpai Pre Explosion instance 10034" x="480" y="178" width="230" height="164" frameX="-18" frameY="0" frameWidth="252" frameHeight="168" />
|
||||
<SubTexture name="Senpai Pre Explosion instance 10035" x="0" y="352" width="230" height="164" frameX="-18" frameY="0" frameWidth="252" frameHeight="168" />
|
||||
<SubTexture name="Senpai Pre Explosion instance 10036" x="480" y="178" width="230" height="164" frameX="-18" frameY="0" frameWidth="252" frameHeight="168" />
|
||||
<SubTexture name="Senpai Pre Explosion instance 10037" x="480" y="178" width="230" height="164" frameX="-18" frameY="0" frameWidth="252" frameHeight="168" />
|
||||
<SubTexture name="Senpai Pre Explosion instance 10038" x="480" y="178" width="230" height="164" frameX="-18" frameY="0" frameWidth="252" frameHeight="168" />
|
||||
<SubTexture name="Senpai Pre Explosion instance 10039" x="480" y="178" width="230" height="164" frameX="-18" frameY="0" frameWidth="252" frameHeight="168" />
|
||||
<SubTexture name="Senpai Pre Explosion instance 10040" x="0" y="352" width="230" height="164" frameX="-18" frameY="0" frameWidth="252" frameHeight="168" />
|
||||
<SubTexture name="Senpai Pre Explosion instance 10041" x="0" y="352" width="230" height="164" frameX="-18" frameY="0" frameWidth="252" frameHeight="168" />
|
||||
<SubTexture name="Senpai Pre Explosion instance 10042" x="0" y="352" width="230" height="164" frameX="-18" frameY="0" frameWidth="252" frameHeight="168" />
|
||||
<SubTexture name="Senpai Pre Explosion instance 10043" x="0" y="352" width="230" height="164" frameX="-18" frameY="0" frameWidth="252" frameHeight="168" />
|
||||
<SubTexture name="Senpai Pre Explosion instance 10044" x="720" y="178" width="230" height="164" frameX="-18" frameY="0" frameWidth="252" frameHeight="168" />
|
||||
<SubTexture name="Senpai Pre Explosion instance 10045" x="0" y="352" width="230" height="164" frameX="-18" frameY="0" frameWidth="252" frameHeight="168" />
|
||||
<SubTexture name="Senpai Pre Explosion instance 10046" x="480" y="178" width="230" height="164" frameX="-18" frameY="0" frameWidth="252" frameHeight="168" />
|
||||
<SubTexture name="Senpai Pre Explosion instance 10047" x="480" y="178" width="230" height="164" frameX="-18" frameY="0" frameWidth="252" frameHeight="168" />
|
||||
<SubTexture name="Senpai Pre Explosion instance 10048" x="720" y="178" width="230" height="164" frameX="-18" frameY="0" frameWidth="252" frameHeight="168" />
|
||||
<SubTexture name="Senpai Pre Explosion instance 10049" x="0" y="352" width="230" height="164" frameX="-18" frameY="0" frameWidth="252" frameHeight="168" />
|
||||
<SubTexture name="Senpai Pre Explosion instance 10050" x="0" y="352" width="230" height="164" frameX="-18" frameY="0" frameWidth="252" frameHeight="168" />
|
||||
<SubTexture name="Senpai Pre Explosion instance 10051" x="720" y="178" width="230" height="164" frameX="-18" frameY="0" frameWidth="252" frameHeight="168" />
|
||||
<SubTexture name="Senpai Pre Explosion instance 10052" x="0" y="352" width="230" height="164" frameX="-18" frameY="0" frameWidth="252" frameHeight="168" />
|
||||
<SubTexture name="Senpai Pre Explosion instance 10053" x="480" y="178" width="230" height="164" frameX="-18" frameY="0" frameWidth="252" frameHeight="168" />
|
||||
<SubTexture name="Senpai Pre Explosion instance 10054" x="720" y="178" width="230" height="164" frameX="-18" frameY="0" frameWidth="252" frameHeight="168" />
|
||||
<SubTexture name="Senpai Pre Explosion instance 10055" x="0" y="352" width="230" height="164" frameX="-18" frameY="0" frameWidth="252" frameHeight="168" />
|
||||
<SubTexture name="Senpai Pre Explosion instance 10056" x="480" y="178" width="230" height="164" frameX="-18" frameY="0" frameWidth="252" frameHeight="168" />
|
||||
<SubTexture name="Senpai Pre Explosion instance 10057" x="240" y="352" width="230" height="164" frameX="0" frameY="0" frameWidth="252" frameHeight="168" />
|
||||
<SubTexture name="Senpai Pre Explosion instance 10058" x="480" y="352" width="230" height="164" frameX="0" frameY="-3" frameWidth="252" frameHeight="168" />
|
||||
<SubTexture name="Senpai Pre Explosion instance 10059" x="720" y="352" width="230" height="164" frameX="0" frameY="-3" frameWidth="252" frameHeight="168" />
|
||||
<SubTexture name="Senpai Pre Explosion instance 10060" x="0" y="526" width="230" height="164" frameX="0" frameY="-3" frameWidth="252" frameHeight="168" />
|
||||
<SubTexture name="Senpai Pre Explosion instance 10061" x="480" y="352" width="230" height="164" frameX="0" frameY="-3" frameWidth="252" frameHeight="168" />
|
||||
<SubTexture name="Senpai Pre Explosion instance 10062" x="720" y="352" width="230" height="164" frameX="0" frameY="-3" frameWidth="252" frameHeight="168" />
|
||||
<SubTexture name="Senpai Pre Explosion instance 10063" x="0" y="526" width="230" height="164" frameX="0" frameY="-3" frameWidth="252" frameHeight="168" />
|
||||
<SubTexture name="Senpai Pre Explosion instance 10064" x="480" y="352" width="230" height="164" frameX="0" frameY="-3" frameWidth="252" frameHeight="168" />
|
||||
<SubTexture name="Senpai Pre Explosion instance 10065" x="720" y="352" width="230" height="164" frameX="0" frameY="-3" frameWidth="252" frameHeight="168" />
|
||||
<SubTexture name="Senpai Pre Explosion instance 10066" x="0" y="526" width="230" height="164" frameX="0" frameY="-3" frameWidth="252" frameHeight="168" />
|
||||
<SubTexture name="Senpai Pre Explosion instance 10067" x="480" y="352" width="230" height="164" frameX="0" frameY="-3" frameWidth="252" frameHeight="168" />
|
||||
<SubTexture name="Senpai Pre Explosion instance 10068" x="720" y="352" width="230" height="164" frameX="0" frameY="-3" frameWidth="252" frameHeight="168" />
|
||||
<SubTexture name="Senpai Pre Explosion instance 10069" x="0" y="526" width="230" height="164" frameX="0" frameY="-3" frameWidth="252" frameHeight="168" />
|
||||
<SubTexture name="Senpai Pre Explosion instance 10070" x="480" y="352" width="230" height="164" frameX="0" frameY="-3" frameWidth="252" frameHeight="168" />
|
||||
<SubTexture name="Senpai Pre Explosion instance 10071" x="720" y="352" width="230" height="164" frameX="0" frameY="-3" frameWidth="252" frameHeight="168" />
|
||||
<SubTexture name="Senpai Pre Explosion instance 10072" x="0" y="526" width="230" height="164" frameX="0" frameY="-3" frameWidth="252" frameHeight="168" />
|
||||
<SubTexture name="Senpai Pre Explosion instance 10073" x="480" y="352" width="230" height="164" frameX="0" frameY="-3" frameWidth="252" frameHeight="168" />
|
||||
<SubTexture name="Senpai Pre Explosion instance 10074" x="720" y="352" width="230" height="164" frameX="0" frameY="-3" frameWidth="252" frameHeight="168" />
|
||||
<SubTexture name="Senpai Pre Explosion instance 10075" x="0" y="526" width="230" height="164" frameX="0" frameY="-3" frameWidth="252" frameHeight="168" />
|
||||
<SubTexture name="Senpai Pre Explosion instance 10076" x="480" y="352" width="230" height="164" frameX="0" frameY="-3" frameWidth="252" frameHeight="168" />
|
||||
<SubTexture name="Senpai Pre Explosion instance 10077" x="720" y="352" width="230" height="164" frameX="0" frameY="-3" frameWidth="252" frameHeight="168" />
|
||||
<SubTexture name="Senpai Pre Explosion instance 10078" x="0" y="526" width="230" height="164" frameX="0" frameY="-3" frameWidth="252" frameHeight="168" />
|
||||
<SubTexture name="Senpai Pre Explosion instance 10079" x="480" y="352" width="230" height="164" frameX="0" frameY="-3" frameWidth="252" frameHeight="168" />
|
||||
<SubTexture name="Senpai Pre Explosion instance 10080" x="720" y="352" width="230" height="164" frameX="0" frameY="-3" frameWidth="252" frameHeight="168" />
|
||||
<SubTexture name="Senpai Pre Explosion instance 10081" x="0" y="526" width="230" height="164" frameX="0" frameY="-3" frameWidth="252" frameHeight="168" />
|
||||
<SubTexture name="Senpai Pre Explosion instance 10082" x="480" y="352" width="230" height="164" frameX="0" frameY="-3" frameWidth="252" frameHeight="168" />
|
||||
<SubTexture name="Senpai Pre Explosion instance 10083" x="720" y="352" width="230" height="164" frameX="0" frameY="-3" frameWidth="252" frameHeight="168" />
|
||||
<SubTexture name="Senpai Pre Explosion instance 10084" x="0" y="526" width="230" height="164" frameX="0" frameY="-3" frameWidth="252" frameHeight="168" />
|
||||
<SubTexture name="Senpai Pre Explosion instance 10085" x="480" y="352" width="230" height="164" frameX="0" frameY="-3" frameWidth="252" frameHeight="168" />
|
||||
<SubTexture name="Senpai Pre Explosion instance 10086" x="720" y="352" width="230" height="164" frameX="0" frameY="-3" frameWidth="252" frameHeight="168" />
|
||||
<SubTexture name="Senpai Pre Explosion instance 10087" x="0" y="526" width="230" height="164" frameX="0" frameY="-3" frameWidth="252" frameHeight="168" />
|
||||
<SubTexture name="Senpai Pre Explosion instance 10088" x="480" y="352" width="230" height="164" frameX="0" frameY="-3" frameWidth="252" frameHeight="168" />
|
||||
<SubTexture name="Senpai Pre Explosion instance 10089" x="720" y="352" width="230" height="164" frameX="0" frameY="-3" frameWidth="252" frameHeight="168" />
|
||||
<SubTexture name="Senpai Pre Explosion instance 10090" x="0" y="526" width="230" height="164" frameX="0" frameY="-3" frameWidth="252" frameHeight="168" />
|
||||
<SubTexture name="Senpai Pre Explosion instance 10091" x="480" y="352" width="230" height="164" frameX="0" frameY="-3" frameWidth="252" frameHeight="168" />
|
||||
<SubTexture name="Senpai Pre Explosion instance 10092" x="720" y="352" width="230" height="164" frameX="0" frameY="-3" frameWidth="252" frameHeight="168" />
|
||||
<SubTexture name="Senpai Pre Explosion instance 10093" x="0" y="526" width="230" height="164" frameX="0" frameY="-3" frameWidth="252" frameHeight="168" />
|
||||
<SubTexture name="Senpai Pre Explosion instance 10094" x="480" y="352" width="230" height="164" frameX="0" frameY="-3" frameWidth="252" frameHeight="168" />
|
||||
<SubTexture name="Senpai Pre Explosion instance 10095" x="720" y="352" width="230" height="164" frameX="0" frameY="-3" frameWidth="252" frameHeight="168" />
|
||||
<SubTexture name="Senpai Pre Explosion instance 10096" x="0" y="526" width="230" height="164" frameX="0" frameY="-3" frameWidth="252" frameHeight="168" />
|
||||
<SubTexture name="Senpai Pre Explosion instance 10097" x="480" y="352" width="230" height="164" frameX="0" frameY="-3" frameWidth="252" frameHeight="168" />
|
||||
<SubTexture name="Senpai Pre Explosion instance 10098" x="720" y="352" width="230" height="164" frameX="0" frameY="-3" frameWidth="252" frameHeight="168" />
|
||||
<SubTexture name="Senpai Pre Explosion instance 10099" x="0" y="526" width="230" height="164" frameX="0" frameY="-3" frameWidth="252" frameHeight="168" />
|
||||
<SubTexture name="Senpai Pre Explosion instance 10100" x="480" y="352" width="230" height="164" frameX="0" frameY="-3" frameWidth="252" frameHeight="168" />
|
||||
<SubTexture name="Senpai Pre Explosion instance 10101" x="720" y="352" width="230" height="164" frameX="0" frameY="-3" frameWidth="252" frameHeight="168" />
|
||||
<SubTexture name="Senpai Pre Explosion instance 10102" x="0" y="526" width="230" height="164" frameX="0" frameY="-3" frameWidth="252" frameHeight="168" />
|
||||
<SubTexture name="Senpai Pre Explosion instance 10103" x="480" y="352" width="230" height="164" frameX="0" frameY="-3" frameWidth="252" frameHeight="168" />
|
||||
<SubTexture name="Senpai Pre Explosion instance 10104" x="720" y="352" width="230" height="164" frameX="0" frameY="-3" frameWidth="252" frameHeight="168" />
|
||||
<SubTexture name="Senpai Pre Explosion instance 10105" x="0" y="526" width="230" height="164" frameX="0" frameY="-3" frameWidth="252" frameHeight="168" />
|
||||
<SubTexture name="Senpai Pre Explosion instance 10106" x="480" y="352" width="230" height="164" frameX="0" frameY="-3" frameWidth="252" frameHeight="168" />
|
||||
<SubTexture name="Senpai Pre Explosion instance 10107" x="720" y="352" width="230" height="164" frameX="0" frameY="-3" frameWidth="252" frameHeight="168" />
|
||||
<SubTexture name="Senpai Pre Explosion instance 10108" x="0" y="526" width="230" height="164" frameX="0" frameY="-3" frameWidth="252" frameHeight="168" />
|
||||
<SubTexture name="Senpai Pre Explosion instance 10109" x="480" y="352" width="230" height="164" frameX="0" frameY="-3" frameWidth="252" frameHeight="168" />
|
||||
<SubTexture name="Senpai Pre Explosion instance 10110" x="720" y="352" width="230" height="164" frameX="0" frameY="-3" frameWidth="252" frameHeight="168" />
|
||||
<SubTexture name="Senpai Pre Explosion instance 10111" x="0" y="526" width="230" height="164" frameX="0" frameY="-3" frameWidth="252" frameHeight="168" />
|
||||
<SubTexture name="Senpai Pre Explosion instance 10112" x="480" y="352" width="230" height="164" frameX="0" frameY="-3" frameWidth="252" frameHeight="168" />
|
||||
<SubTexture name="Senpai Pre Explosion instance 10113" x="720" y="352" width="230" height="164" frameX="0" frameY="-3" frameWidth="252" frameHeight="168" />
|
||||
<SubTexture name="Senpai Pre Explosion instance 10114" x="0" y="526" width="230" height="164" frameX="0" frameY="-3" frameWidth="252" frameHeight="168" />
|
||||
<SubTexture name="Senpai Pre Explosion instance 10115" x="480" y="352" width="230" height="164" frameX="0" frameY="-3" frameWidth="252" frameHeight="168" />
|
||||
<SubTexture name="Senpai Pre Explosion instance 10116" x="720" y="352" width="230" height="164" frameX="0" frameY="-3" frameWidth="252" frameHeight="168" />
|
||||
<SubTexture name="Senpai Pre Explosion instance 10117" x="0" y="526" width="230" height="164" frameX="0" frameY="-3" frameWidth="252" frameHeight="168" />
|
||||
<SubTexture name="Senpai Pre Explosion instance 10118" x="480" y="352" width="230" height="164" frameX="0" frameY="-3" frameWidth="252" frameHeight="168" />
|
||||
<SubTexture name="Senpai Pre Explosion instance 10119" x="720" y="352" width="230" height="164" frameX="0" frameY="-3" frameWidth="252" frameHeight="168" />
|
||||
<SubTexture name="Senpai Pre Explosion instance 10120" x="0" y="526" width="230" height="164" frameX="0" frameY="-3" frameWidth="252" frameHeight="168" />
|
||||
<SubTexture name="Senpai Pre Explosion instance 10121" x="480" y="352" width="230" height="164" frameX="0" frameY="-3" frameWidth="252" frameHeight="168" />
|
||||
<SubTexture name="Senpai Pre Explosion instance 10122" x="720" y="352" width="230" height="164" frameX="0" frameY="-3" frameWidth="252" frameHeight="168" />
|
||||
<SubTexture name="Senpai Pre Explosion instance 10123" x="0" y="526" width="230" height="164" frameX="0" frameY="-3" frameWidth="252" frameHeight="168" />
|
||||
<SubTexture name="Senpai Pre Explosion instance 10124" x="480" y="352" width="230" height="164" frameX="0" frameY="-3" frameWidth="252" frameHeight="168" />
|
||||
</TextureAtlas>
|
BIN
images/weeb/spiritFaceForward.png
Normal file
After Width: | Height: | Size: 791 B |
5
images/weeb/spiritFaceForward.xml
Normal file
@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<TextureAtlas imagePath="spiritFaceForward.png">
|
||||
<SubTexture name="portraitEnter0001" x="0" y="0" width="47" height="106" />
|
||||
<SubTexture name="portraitTalk0001" x="0" y="0" width="47" height="106" />
|
||||
</TextureAtlas>
|
BIN
images/weeb/weebBackTrees.png
Normal file
After Width: | Height: | Size: 1.7 KiB |
BIN
images/weeb/weebSchool.png
Normal file
After Width: | Height: | Size: 3.5 KiB |
BIN
images/weeb/weebSky.png
Normal file
After Width: | Height: | Size: 2.7 KiB |
BIN
images/weeb/weebStreet.png
Normal file
After Width: | Height: | Size: 4.4 KiB |
BIN
images/weeb/weebTrees.png
Normal file
After Width: | Height: | Size: 16 KiB |
20
images/weeb/weebTrees.txt
Normal file
@ -0,0 +1,20 @@
|
||||
trees_0 = 0 0 512 512
|
||||
trees_1 = 513 0 512 512
|
||||
trees_2 = 1539 1026 512 512
|
||||
trees_3 = 2052 513 512 512
|
||||
trees_4 = 2565 0 512 512
|
||||
trees_5 = 3078 0 512 512
|
||||
trees_6 = 2565 513 512 512
|
||||
trees_7 = 2052 1026 512 512
|
||||
trees_8 = 2565 1026 512 512
|
||||
trees_9 = 3078 513 512 512
|
||||
trees_10 = 1026 0 512 512
|
||||
trees_11 = 0 513 512 512
|
||||
trees_12 = 513 513 512 512
|
||||
trees_13 = 0 1026 512 512
|
||||
trees_14 = 513 1026 512 512
|
||||
trees_15 = 1026 513 512 512
|
||||
trees_16 = 1026 1026 512 512
|
||||
trees_17 = 1539 0 512 512
|
||||
trees_18 = 1539 513 512 512
|
||||
trees_19 = 2052 0 512 512
|
23
images/weeb/weebTrees.xml
Normal file
@ -0,0 +1,23 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<TextureAtlas imagePath="senpaiCrazy.png">
|
||||
<SubTexture name="Trees0000" x="0" y="0" width="512" height="512" frameX="0" frameY="0" frameWidth="512" frameHeight="512" />
|
||||
<SubTexture name="Trees0001" x="513" y="0" width="512" height="512" frameX="0" frameY="0" frameWidth="512" frameHeight="512" />
|
||||
<SubTexture name="Trees0002" x="1539" y="1026" width="512" height="512" frameX="0" frameY="0" frameWidth="512" frameHeight="512" />
|
||||
<SubTexture name="Trees0003" x="2052" y="513" width="512" height="512" frameX="0" frameY="0" frameWidth="512" frameHeight="512" />
|
||||
<SubTexture name="Trees0004" x="2565" y="0" width="512" height="512" frameX="0" frameY="0" frameWidth="512" frameHeight="512" />
|
||||
<SubTexture name="Trees0005" x="3078" y="0" width="512" height="512" frameX="0" frameY="0" frameWidth="512" frameHeight="512" />
|
||||
<SubTexture name="Trees0006" x="2565" y="513" width="512" height="512" frameX="0" frameY="0" frameWidth="512" frameHeight="512" />
|
||||
<SubTexture name="Trees0007" x="2052" y="1026" width="512" height="512" frameX="0" frameY="0" frameWidth="512" frameHeight="512" />
|
||||
<SubTexture name="Trees0008" x="2565" y="1026" width="512" height="512" frameX="0" frameY="0" frameWidth="512" frameHeight="512" />
|
||||
<SubTexture name="Trees0009" x="3078" y="513" width="512" height="512" frameX="0" frameY="0" frameWidth="512" frameHeight="512" />
|
||||
<SubTexture name="Trees0010" x="1026" y="0" width="512" height="512" frameX="0" frameY="0" frameWidth="512" frameHeight="512" />
|
||||
<SubTexture name="Trees0011" x="0" y="513" width="512" height="512" frameX="0" frameY="0" frameWidth="512" frameHeight="512" />
|
||||
<SubTexture name="Trees0012" x="513" y="513" width="512" height="512" frameX="0" frameY="0" frameWidth="512" frameHeight="512" />
|
||||
<SubTexture name="Trees0013" x="0" y="1026" width="512" height="512" frameX="0" frameY="0" frameWidth="512" frameHeight="512" />
|
||||
<SubTexture name="Trees0014" x="513" y="1026" width="512" height="512" frameX="0" frameY="0" frameWidth="512" frameHeight="512" />
|
||||
<SubTexture name="Trees0015" x="1026" y="513" width="512" height="512" frameX="0" frameY="0" frameWidth="512" frameHeight="512" />
|
||||
<SubTexture name="Trees0016" x="1026" y="1026" width="512" height="512" frameX="0" frameY="0" frameWidth="512" frameHeight="512" />
|
||||
<SubTexture name="Trees0017" x="1539" y="0" width="512" height="512" frameX="0" frameY="0" frameWidth="512" frameHeight="512" />
|
||||
<SubTexture name="Trees0018" x="1539" y="513" width="512" height="512" frameX="0" frameY="0" frameWidth="512" frameHeight="512" />
|
||||
<SubTexture name="Trees0019" x="2052" y="0" width="512" height="512" frameX="0" frameY="0" frameWidth="512" frameHeight="512" />
|
||||
</TextureAtlas>
|
BIN
images/weeb/weebTreesBack.png
Normal file
After Width: | Height: | Size: 1.5 KiB |
@ -1,141 +1,109 @@
|
||||
--[[
|
||||
|
||||
LUA MODULE
|
||||
|
||||
complex v$(_VERSION) - complex numbers implemented as Lua tables
|
||||
|
||||
SYNOPSIS
|
||||
-- complex 0.3.0
|
||||
-- Lua 5.1
|
||||
|
||||
local complex = require 'complex'
|
||||
local cx1 = complex "2+3i" -- or complex.new(2, 3)
|
||||
local cx2 = complex "3+2i"
|
||||
assert( complex.add(cx1,cx2) == complex "5+5i" )
|
||||
assert( tostring(cx1) == "2+3i" )
|
||||
|
||||
DESCRIPTION
|
||||
|
||||
'complex' provides common tasks with complex numbers
|
||||
-- 'complex' provides common tasks with complex numbers
|
||||
|
||||
function complex.to( arg ); complex( arg )
|
||||
returns a complex number on success, nil on failure
|
||||
arg := number or { number,number } or ( "(-)<number>" and/or "(+/-)<number>i" )
|
||||
e.g. 5; {2,3}; "2", "2+i", "-2i", "2^2*3+1/3i"
|
||||
note: 'i' is always in the numerator, spaces are not allowed
|
||||
-- function complex.to( arg ); complex( arg )
|
||||
-- returns a complex number on success, nil on failure
|
||||
-- arg := number or { number,number } or ( "(-)<number>" and/or "(+/-)<number>i" )
|
||||
-- e.g. 5; {2,3}; "2", "2+i", "-2i", "2^2*3+1/3i"
|
||||
-- note: 'i' is always in the numerator, spaces are not allowed
|
||||
|
||||
A complex number is defined as Cartesian complex number
|
||||
complex number := { real_part, imaginary_part } .
|
||||
This gives fast access to both parts of the number for calculation.
|
||||
The access is faster than in a hash table
|
||||
The metatable is just an add on. When it comes to speed, one is faster using a direct function call.
|
||||
-- a complex number is defined as carthesic complex number
|
||||
-- complex number := { real_part, imaginary_part }
|
||||
-- this gives fast access to both parts of the number for calculation
|
||||
-- the access is faster than in a hash table
|
||||
-- the metatable is just a add on, when it comes to speed, one is faster using a direct function call
|
||||
|
||||
API
|
||||
-- http://luaforge.net/projects/LuaMatrix
|
||||
-- http://lua-users.org/wiki/ComplexNumbers
|
||||
|
||||
See code and test_complex.lua.
|
||||
|
||||
DEPENDENCIES
|
||||
|
||||
None (other than Lua 5.1 or 5.2).
|
||||
|
||||
HOME PAGE
|
||||
|
||||
http://luamatrix.luaforge.net
|
||||
http://lua-users.org/wiki/LuaMatrix
|
||||
|
||||
DOWNLOAD/INSTALL
|
||||
|
||||
./util.mk
|
||||
cd tmp/*
|
||||
luarocks make
|
||||
|
||||
Licensed under the same terms as Lua itself.
|
||||
|
||||
Developers:
|
||||
Michael Lutz (chillcode)
|
||||
David Manura http://lua-users.org/wiki/DavidManura (maintainer)
|
||||
--]]
|
||||
-- Licensed under the same terms as Lua itself.
|
||||
|
||||
--/////////////--
|
||||
--// complex //--
|
||||
--/////////////--
|
||||
|
||||
-- link to complex table
|
||||
local complex = {_TYPE='module', _NAME='complex', _VERSION='0.3.3.20111212'}
|
||||
local complex = {}
|
||||
|
||||
-- link to complex metatable
|
||||
local complex_meta = {}
|
||||
|
||||
-- helper functions for parsing complex number strings.
|
||||
local function parse_scalar(s, pos0)
|
||||
local x, n, pos = s:match('^([+-]?[%d%.]+)(.?)()', pos0)
|
||||
if not x then return end
|
||||
if n == 'e' or n == 'E' then
|
||||
local x2, n2, pos2 = s:match('^([+-]?%d+)(.?)()', pos)
|
||||
if not x2 then error 'number format error' end
|
||||
x = tonumber(x..n..x2)
|
||||
if not x then error 'number format error' end
|
||||
return x, n2, pos2
|
||||
else
|
||||
x = tonumber(x)
|
||||
if not x then error 'number format error' end
|
||||
return x, n, pos
|
||||
end
|
||||
end
|
||||
local function parse_component(s, pos0)
|
||||
local x, n, pos = parse_scalar(s, pos0)
|
||||
if not x then
|
||||
local x2, n2, pos2 = s:match('^([+-]?)(i)()$', pos0)
|
||||
if not x2 then error 'number format error' end
|
||||
return (x2=='-' and -1 or 1), n2, pos2
|
||||
end
|
||||
if n == '/' then
|
||||
local x2, n2, pos2 = parse_scalar(s, pos)
|
||||
x = x / x2
|
||||
return x, n2, pos2
|
||||
end
|
||||
return x, n, pos
|
||||
end
|
||||
local function parse_complex(s)
|
||||
local x, n, pos = parse_component(s, 1)
|
||||
if n == '+' or n == '-' then
|
||||
local x2, n2, pos2 = parse_component(s, pos)
|
||||
if n2 ~= 'i' or pos2 ~= #s+1 then error 'number format error' end
|
||||
if n == '-' then x2 = - x2 end
|
||||
return x, x2
|
||||
elseif n == '' then
|
||||
return x, 0
|
||||
elseif n == 'i' then
|
||||
if pos ~= #s+1 then error 'number format error' end
|
||||
return 0, x
|
||||
else
|
||||
error 'number format error'
|
||||
end
|
||||
end
|
||||
|
||||
-- complex.to( arg )
|
||||
-- return a complex number on success
|
||||
-- return nil on failure
|
||||
local _retone = function() return 1 end
|
||||
local _retminusone = function() return -1 end
|
||||
function complex.to( num )
|
||||
-- check for table type
|
||||
if type( num ) == "table" then
|
||||
-- check for a complex number
|
||||
if getmetatable( num ) == complex_meta then
|
||||
return num
|
||||
end
|
||||
local real,imag = tonumber( num[1] ),tonumber( num[2] )
|
||||
if real and imag then
|
||||
return setmetatable( { real,imag }, complex_meta )
|
||||
end
|
||||
return
|
||||
end
|
||||
-- check for number
|
||||
local isnum = tonumber( num )
|
||||
if isnum then
|
||||
return setmetatable( { isnum,0 }, complex_meta )
|
||||
end
|
||||
if type( num ) == "string" then
|
||||
local real, imag = parse_complex(num)
|
||||
return setmetatable( { real, imag }, complex_meta )
|
||||
end
|
||||
-- check for table type
|
||||
if type( num ) == "table" then
|
||||
-- check for a complex number
|
||||
if getmetatable( num ) == complex_meta then
|
||||
return num
|
||||
end
|
||||
local real,imag = tonumber( num[1] ),tonumber( num[2] )
|
||||
if real and imag then
|
||||
return setmetatable( { real,imag }, complex_meta )
|
||||
end
|
||||
return
|
||||
end
|
||||
-- check for number
|
||||
local isnum = tonumber( num )
|
||||
if isnum then
|
||||
return setmetatable( { isnum,0 }, complex_meta )
|
||||
end
|
||||
if type( num ) == "string" then
|
||||
-- check for real and complex
|
||||
-- number chars [%-%+%*%^%d%./Ee]
|
||||
local real,sign,imag = string.match( num, "^([%-%+%*%^%d%./Ee]*%d)([%+%-])([%-%+%*%^%d%./Ee]*)i$" )
|
||||
if real then
|
||||
if string.lower(string.sub(real,1,1)) == "e"
|
||||
or string.lower(string.sub(imag,1,1)) == "e" then
|
||||
return
|
||||
end
|
||||
if imag == "" then
|
||||
if sign == "+" then
|
||||
imag = _retone
|
||||
else
|
||||
imag = _retminusone
|
||||
end
|
||||
elseif sign == "+" then
|
||||
imag = loadstring("return tonumber("..imag..")")
|
||||
else
|
||||
imag = loadstring("return tonumber("..sign..imag..")")
|
||||
end
|
||||
real = loadstring("return tonumber("..real..")")
|
||||
if real and imag then
|
||||
return setmetatable( { real(),imag() }, complex_meta )
|
||||
end
|
||||
return
|
||||
end
|
||||
-- check for complex
|
||||
local imag = string.match( num,"^([%-%+%*%^%d%./Ee]*)i$" )
|
||||
if imag then
|
||||
if imag == "" then
|
||||
return setmetatable( { 0,1 }, complex_meta )
|
||||
elseif imag == "-" then
|
||||
return setmetatable( { 0,-1 }, complex_meta )
|
||||
end
|
||||
if string.lower(string.sub(imag,1,1)) ~= "e" then
|
||||
imag = loadstring("return tonumber("..imag..")")
|
||||
if imag then
|
||||
return setmetatable( { 0,imag() }, complex_meta )
|
||||
end
|
||||
end
|
||||
return
|
||||
end
|
||||
-- should be real
|
||||
local real = string.match( num,"^(%-*[%d%.][%-%+%*%^%d%./Ee]*)$" )
|
||||
if real then
|
||||
real = loadstring( "return tonumber("..real..")" )
|
||||
if real then
|
||||
return setmetatable( { real(),0 }, complex_meta )
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
-- complex( arg )
|
||||
@ -146,15 +114,15 @@ setmetatable( complex, { __call = function( _,num ) return complex.to( num ) end
|
||||
-- complex.new( real, complex )
|
||||
-- fast function to get a complex number, not invoking any checks
|
||||
function complex.new( ... )
|
||||
return setmetatable( { ... }, complex_meta )
|
||||
return setmetatable( { ... }, complex_meta )
|
||||
end
|
||||
|
||||
-- complex.type( arg )
|
||||
-- is argument of type complex
|
||||
function complex.type( arg )
|
||||
if getmetatable( arg ) == complex_meta then
|
||||
return "complex"
|
||||
end
|
||||
if getmetatable( arg ) == complex_meta then
|
||||
return "complex"
|
||||
end
|
||||
end
|
||||
|
||||
-- complex.convpolar( r, phi )
|
||||
@ -162,16 +130,16 @@ end
|
||||
-- r (radius) is a number
|
||||
-- phi (angle) must be in radians; e.g. [0 - 2pi]
|
||||
function complex.convpolar( radius, phi )
|
||||
return setmetatable( { radius * math.cos( phi ), radius * math.sin( phi ) }, complex_meta )
|
||||
return setmetatable( { radius * math.cos( phi ), radius * math.sin( phi ) }, complex_meta )
|
||||
end
|
||||
|
||||
-- complex.convpolardeg( r, phi )
|
||||
-- convert polar coordinates ( r*e^(i*phi) ) to carthesic complex number
|
||||
-- r (radius) is a number
|
||||
-- phi must be in degrees; e.g. [0 - 360 deg]
|
||||
-- phi must be in degrees; e.g. [0° - 360°]
|
||||
function complex.convpolardeg( radius, phi )
|
||||
phi = phi/180 * math.pi
|
||||
return setmetatable( { radius * math.cos( phi ), radius * math.sin( phi ) }, complex_meta )
|
||||
phi = phi/180 * math.pi
|
||||
return setmetatable( { radius * math.cos( phi ), radius * math.sin( phi ) }, complex_meta )
|
||||
end
|
||||
|
||||
--// complex number functions only
|
||||
@ -180,31 +148,31 @@ end
|
||||
-- to string or real number
|
||||
-- takes a complex number and returns its string value or real number value
|
||||
function complex.tostring( cx,formatstr )
|
||||
local real,imag = cx[1],cx[2]
|
||||
if formatstr then
|
||||
if imag == 0 then
|
||||
return string.format( formatstr, real )
|
||||
elseif real == 0 then
|
||||
return string.format( formatstr, imag ).."i"
|
||||
elseif imag > 0 then
|
||||
return string.format( formatstr, real ).."+"..string.format( formatstr, imag ).."i"
|
||||
end
|
||||
return string.format( formatstr, real )..string.format( formatstr, imag ).."i"
|
||||
end
|
||||
if imag == 0 then
|
||||
return real
|
||||
elseif real == 0 then
|
||||
return ((imag==1 and "") or (imag==-1 and "-") or imag).."i"
|
||||
elseif imag > 0 then
|
||||
return real.."+"..(imag==1 and "" or imag).."i"
|
||||
end
|
||||
return real..(imag==-1 and "-" or imag).."i"
|
||||
local real,imag = cx[1],cx[2]
|
||||
if formatstr then
|
||||
if imag == 0 then
|
||||
return string.format( formatstr, real )
|
||||
elseif real == 0 then
|
||||
return string.format( formatstr, imag ).."i"
|
||||
elseif imag > 0 then
|
||||
return string.format( formatstr, real ).."+"..string.format( formatstr, imag ).."i"
|
||||
end
|
||||
return string.format( formatstr, real )..string.format( formatstr, imag ).."i"
|
||||
end
|
||||
if imag == 0 then
|
||||
return real
|
||||
elseif real == 0 then
|
||||
return ((imag==1 and "") or (imag==-1 and "-") or imag).."i"
|
||||
elseif imag > 0 then
|
||||
return real.."+"..(imag==1 and "" or imag).."i"
|
||||
end
|
||||
return real..(imag==-1 and "-" or imag).."i"
|
||||
end
|
||||
|
||||
-- complex.print( cx [, formatstr] )
|
||||
-- print a complex number
|
||||
function complex.print( ... )
|
||||
print( complex.tostring( ... ) )
|
||||
print( complex.tostring( ... ) )
|
||||
end
|
||||
|
||||
-- complex.polar( cx )
|
||||
@ -212,50 +180,49 @@ end
|
||||
-- output in radians; [-pi,+pi]
|
||||
-- returns r (radius), phi (angle)
|
||||
function complex.polar( cx )
|
||||
return math.sqrt( cx[1]^2 + cx[2]^2 ), math.atan2( cx[2], cx[1] )
|
||||
return math.sqrt( cx[1]^2 + cx[2]^2 ), math.atan2( cx[2], cx[1] )
|
||||
end
|
||||
|
||||
-- complex.polardeg( cx )
|
||||
-- from complex number to polar coordinates
|
||||
-- output in degrees; [-180, 180 deg]
|
||||
-- output in degrees; [-180°,180°]
|
||||
-- returns r (radius), phi (angle)
|
||||
function complex.polardeg( cx )
|
||||
return math.sqrt( cx[1]^2 + cx[2]^2 ), math.atan2( cx[2], cx[1] ) / math.pi * 180
|
||||
return math.sqrt( cx[1]^2 + cx[2]^2 ), math.atan2( cx[2], cx[1] ) / math.pi * 180
|
||||
end
|
||||
|
||||
-- complex.norm2( cx )
|
||||
-- multiply with conjugate, function returning a scalar number
|
||||
-- norm2(x + i*y) returns x^2 + y^2
|
||||
function complex.norm2( cx )
|
||||
return cx[1]^2 + cx[2]^2
|
||||
-- complex.mulconjugate( cx )
|
||||
-- multiply with conjugate, function returning a number
|
||||
function complex.mulconjugate( cx )
|
||||
return cx[1]^2 + cx[2]^2
|
||||
end
|
||||
|
||||
-- complex.abs( cx )
|
||||
-- get the absolute value of a complex number
|
||||
function complex.abs( cx )
|
||||
return math.sqrt( cx[1]^2 + cx[2]^2 )
|
||||
return math.sqrt( cx[1]^2 + cx[2]^2 )
|
||||
end
|
||||
|
||||
-- complex.get( cx )
|
||||
-- returns real_part, imaginary_part
|
||||
function complex.get( cx )
|
||||
return cx[1],cx[2]
|
||||
return cx[1],cx[2]
|
||||
end
|
||||
|
||||
-- complex.set( cx, real, imag )
|
||||
-- sets real_part = real and imaginary_part = imag
|
||||
function complex.set( cx,real,imag )
|
||||
cx[1],cx[2] = real,imag
|
||||
cx[1],cx[2] = real,imag
|
||||
end
|
||||
|
||||
-- complex.is( cx, real, imag )
|
||||
-- returns true if, real_part = real and imaginary_part = imag
|
||||
-- else returns false
|
||||
function complex.is( cx,real,imag )
|
||||
if cx[1] == real and cx[2] == imag then
|
||||
return true
|
||||
end
|
||||
return false
|
||||
if cx[1] == real and cx[2] == imag then
|
||||
return true
|
||||
end
|
||||
return false
|
||||
end
|
||||
|
||||
--// functions returning a new complex number
|
||||
@ -263,156 +230,152 @@ end
|
||||
-- complex.copy( cx )
|
||||
-- copy complex number
|
||||
function complex.copy( cx )
|
||||
return setmetatable( { cx[1],cx[2] }, complex_meta )
|
||||
return setmetatable( { cx[1],cx[2] }, complex_meta )
|
||||
end
|
||||
|
||||
-- complex.add( cx1, cx2 )
|
||||
-- add two numbers; cx1 + cx2
|
||||
function complex.add( cx1,cx2 )
|
||||
return setmetatable( { cx1[1]+cx2[1], cx1[2]+cx2[2] }, complex_meta )
|
||||
return setmetatable( { cx1[1]+cx2[1], cx1[2]+cx2[2] }, complex_meta )
|
||||
end
|
||||
|
||||
-- complex.sub( cx1, cx2 )
|
||||
-- subtract two numbers; cx1 - cx2
|
||||
function complex.sub( cx1,cx2 )
|
||||
return setmetatable( { cx1[1]-cx2[1], cx1[2]-cx2[2] }, complex_meta )
|
||||
return setmetatable( { cx1[1]-cx2[1], cx1[2]-cx2[2] }, complex_meta )
|
||||
end
|
||||
|
||||
-- complex.mul( cx1, cx2 )
|
||||
-- multiply two numbers; cx1 * cx2
|
||||
function complex.mul( cx1,cx2 )
|
||||
return setmetatable( { cx1[1]*cx2[1] - cx1[2]*cx2[2],cx1[1]*cx2[2] + cx1[2]*cx2[1] }, complex_meta )
|
||||
return setmetatable( { cx1[1]*cx2[1] - cx1[2]*cx2[2],cx1[1]*cx2[2] + cx1[2]*cx2[1] }, complex_meta )
|
||||
end
|
||||
|
||||
-- complex.mulnum( cx, num )
|
||||
-- multiply complex with number; cx1 * num
|
||||
function complex.mulnum( cx,num )
|
||||
return setmetatable( { cx[1]*num,cx[2]*num }, complex_meta )
|
||||
return setmetatable( { cx[1]*num,cx[2]*num }, complex_meta )
|
||||
end
|
||||
|
||||
-- complex.div( cx1, cx2 )
|
||||
-- divide 2 numbers; cx1 / cx2
|
||||
function complex.div( cx1,cx2 )
|
||||
-- get complex value
|
||||
local val = cx2[1]^2 + cx2[2]^2
|
||||
-- multiply cx1 with conjugate complex of cx2 and divide through val
|
||||
return setmetatable( { (cx1[1]*cx2[1]+cx1[2]*cx2[2])/val,(cx1[2]*cx2[1]-cx1[1]*cx2[2])/val }, complex_meta )
|
||||
-- get complex value
|
||||
local val = cx2[1]^2 + cx2[2]^2
|
||||
-- multiply cx1 with conjugate complex of cx2 and divide through val
|
||||
return setmetatable( { (cx1[1]*cx2[1]+cx1[2]*cx2[2])/val,(cx1[2]*cx2[1]-cx1[1]*cx2[2])/val }, complex_meta )
|
||||
end
|
||||
|
||||
-- complex.divnum( cx, num )
|
||||
-- divide through a number
|
||||
function complex.divnum( cx,num )
|
||||
return setmetatable( { cx[1]/num,cx[2]/num }, complex_meta )
|
||||
return setmetatable( { cx[1]/num,cx[2]/num }, complex_meta )
|
||||
end
|
||||
|
||||
-- complex.pow( cx, num )
|
||||
-- get the power of a complex number
|
||||
function complex.pow( cx,num )
|
||||
if math.floor( num ) == num then
|
||||
if num < 0 then
|
||||
local val = cx[1]^2 + cx[2]^2
|
||||
cx = { cx[1]/val,-cx[2]/val }
|
||||
num = -num
|
||||
end
|
||||
local real,imag = cx[1],cx[2]
|
||||
for i = 2,num do
|
||||
real,imag = real*cx[1] - imag*cx[2],real*cx[2] + imag*cx[1]
|
||||
end
|
||||
return setmetatable( { real,imag }, complex_meta )
|
||||
end
|
||||
-- we calculate the polar complex number now
|
||||
-- since then we have the versatility to calc any potenz of the complex number
|
||||
-- then we convert it back to a carthesic complex number, we loose precision here
|
||||
local length,phi = math.sqrt( cx[1]^2 + cx[2]^2 )^num, math.atan2( cx[2], cx[1] )*num
|
||||
return setmetatable( { length * math.cos( phi ), length * math.sin( phi ) }, complex_meta )
|
||||
if math.floor( num ) == num then
|
||||
if num < 0 then
|
||||
local val = cx[1]^2 + cx[2]^2
|
||||
cx = { cx[1]/val,-cx[2]/val }
|
||||
num = -num
|
||||
end
|
||||
local real,imag = cx[1],cx[2]
|
||||
for i = 2,num do
|
||||
real,imag = real*cx[1] - imag*cx[2],real*cx[2] + imag*cx[1]
|
||||
end
|
||||
return setmetatable( { real,imag }, complex_meta )
|
||||
end
|
||||
-- we calculate the polar complex number now
|
||||
-- since then we have the versatility to calc any potenz of the complex number
|
||||
-- then we convert it back to a carthesic complex number, we loose precision here
|
||||
local length,phi = math.sqrt( cx[1]^2 + cx[2]^2 )^num, math.atan2( cx[2], cx[1] )*num
|
||||
return setmetatable( { length * math.cos( phi ), length * math.sin( phi ) }, complex_meta )
|
||||
end
|
||||
|
||||
-- complex.sqrt( cx )
|
||||
-- get the first squareroot of a complex number, more accurate than cx^.5
|
||||
function complex.sqrt( cx )
|
||||
local len = math.sqrt( cx[1]^2+cx[2]^2 )
|
||||
local sign = (cx[2]<0 and -1) or 1
|
||||
return setmetatable( { math.sqrt((cx[1]+len)/2), sign*math.sqrt((len-cx[1])/2) }, complex_meta )
|
||||
local len = math.sqrt( cx[1]^2+cx[2]^2 )
|
||||
local sign = (cx[2]<0 and -1) or 1
|
||||
return setmetatable( { math.sqrt((cx[1]+len)/2), sign*math.sqrt((len-cx[1])/2) }, complex_meta )
|
||||
end
|
||||
|
||||
-- complex.ln( cx )
|
||||
-- natural logarithm of cx
|
||||
function complex.ln( cx )
|
||||
return setmetatable( { math.log(math.sqrt( cx[1]^2 + cx[2]^2 )),
|
||||
math.atan2( cx[2], cx[1] ) }, complex_meta )
|
||||
return setmetatable( { math.log(math.sqrt( cx[1]^2 + cx[2]^2 )),
|
||||
math.atan2( cx[2], cx[1] ) }, complex_meta )
|
||||
end
|
||||
|
||||
-- complex.exp( cx )
|
||||
-- exponent of cx (e^cx)
|
||||
function complex.exp( cx )
|
||||
local expreal = math.exp(cx[1])
|
||||
return setmetatable( { expreal*math.cos(cx[2]), expreal*math.sin(cx[2]) }, complex_meta )
|
||||
local expreal = math.exp(cx[1])
|
||||
return setmetatable( { expreal*math.cos(cx[2]), expreal*math.sin(cx[2]) }, complex_meta )
|
||||
end
|
||||
|
||||
-- complex.conjugate( cx )
|
||||
-- get conjugate complex of number
|
||||
function complex.conjugate( cx )
|
||||
return setmetatable( { cx[1], -cx[2] }, complex_meta )
|
||||
return setmetatable( { cx[1], -cx[2] }, complex_meta )
|
||||
end
|
||||
|
||||
-- complex.round( cx [,idp] )
|
||||
-- round complex numbers, by default to 0 decimal points
|
||||
function complex.round( cx,idp )
|
||||
local mult = 10^( idp or 0 )
|
||||
return setmetatable( { math.floor( cx[1] * mult + 0.5 ) / mult,
|
||||
math.floor( cx[2] * mult + 0.5 ) / mult }, complex_meta )
|
||||
local mult = 10^( idp or 0 )
|
||||
return setmetatable( { math.floor( cx[1] * mult + 0.5 ) / mult,
|
||||
math.floor( cx[2] * mult + 0.5 ) / mult }, complex_meta )
|
||||
end
|
||||
|
||||
--// variables
|
||||
complex.zero = complex.new(0, 0)
|
||||
complex.one = complex.new(1, 0)
|
||||
|
||||
--// metatable functions
|
||||
|
||||
complex_meta.__add = function( cx1,cx2 )
|
||||
local cx1,cx2 = complex.to( cx1 ),complex.to( cx2 )
|
||||
return complex.add( cx1,cx2 )
|
||||
local cx1,cx2 = complex.to( cx1 ),complex.to( cx2 )
|
||||
return complex.add( cx1,cx2 )
|
||||
end
|
||||
complex_meta.__sub = function( cx1,cx2 )
|
||||
local cx1,cx2 = complex.to( cx1 ),complex.to( cx2 )
|
||||
return complex.sub( cx1,cx2 )
|
||||
local cx1,cx2 = complex.to( cx1 ),complex.to( cx2 )
|
||||
return complex.sub( cx1,cx2 )
|
||||
end
|
||||
complex_meta.__mul = function( cx1,cx2 )
|
||||
local cx1,cx2 = complex.to( cx1 ),complex.to( cx2 )
|
||||
return complex.mul( cx1,cx2 )
|
||||
local cx1,cx2 = complex.to( cx1 ),complex.to( cx2 )
|
||||
return complex.mul( cx1,cx2 )
|
||||
end
|
||||
complex_meta.__div = function( cx1,cx2 )
|
||||
local cx1,cx2 = complex.to( cx1 ),complex.to( cx2 )
|
||||
return complex.div( cx1,cx2 )
|
||||
local cx1,cx2 = complex.to( cx1 ),complex.to( cx2 )
|
||||
return complex.div( cx1,cx2 )
|
||||
end
|
||||
complex_meta.__pow = function( cx,num )
|
||||
if num == "*" then
|
||||
return complex.conjugate( cx )
|
||||
end
|
||||
return complex.pow( cx,num )
|
||||
if num == "*" then
|
||||
return complex.conjugate( cx )
|
||||
end
|
||||
return complex.pow( cx,num )
|
||||
end
|
||||
complex_meta.__unm = function( cx )
|
||||
return setmetatable( { -cx[1], -cx[2] }, complex_meta )
|
||||
return setmetatable( { -cx[1], -cx[2] }, complex_meta )
|
||||
end
|
||||
complex_meta.__eq = function( cx1,cx2 )
|
||||
if cx1[1] == cx2[1] and cx1[2] == cx2[2] then
|
||||
return true
|
||||
end
|
||||
return false
|
||||
if cx1[1] == cx2[1] and cx1[2] == cx2[2] then
|
||||
return true
|
||||
end
|
||||
return false
|
||||
end
|
||||
complex_meta.__tostring = function( cx )
|
||||
return tostring( complex.tostring( cx ) )
|
||||
return tostring( complex.tostring( cx ) )
|
||||
end
|
||||
complex_meta.__concat = function( cx,cx2 )
|
||||
return tostring(cx)..tostring(cx2)
|
||||
return tostring(cx)..tostring(cx2)
|
||||
end
|
||||
-- cx( cx, formatstr )
|
||||
complex_meta.__call = function( ... )
|
||||
print( complex.tostring( ... ) )
|
||||
print( complex.tostring( ... ) )
|
||||
end
|
||||
complex_meta.__index = {}
|
||||
for k,v in pairs( complex ) do
|
||||
complex_meta.__index[k] = v
|
||||
complex_meta.__index[k] = v
|
||||
end
|
||||
|
||||
return complex
|
||||
|
@ -529,7 +529,6 @@ function AnimateAtlas:update(dt)
|
||||
frameIndex = 0
|
||||
end
|
||||
local loopMode = self._curSymbol.data[optimized and "LP" or "loop"]
|
||||
print(loopMode)
|
||||
|
||||
local library = self.libraries[symbolName]
|
||||
local symbolTimeline = library.data
|
||||
@ -541,7 +540,7 @@ function AnimateAtlas:update(dt)
|
||||
if frameIndex < 0 then
|
||||
frameIndex = length - 1
|
||||
end
|
||||
if frameIndex > length - 2 then
|
||||
if frameIndex > length - 1 then
|
||||
frameIndex = 0
|
||||
end
|
||||
elseif loopMode == "playonce" or loopMode == "PO" then
|
||||
|
360
modules/luafft.lua
Normal file
@ -0,0 +1,360 @@
|
||||
--[[
|
||||
This package provides functions to carry out Fast Fourier Transformations.
|
||||
|
||||
Copyright (C) 2011 by Benjamin von Ardenne
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
|
||||
]]
|
||||
|
||||
complex = require "modules.complex"
|
||||
|
||||
---------------------------------------------------------------
|
||||
--This is a lua port of the KissFFT Library by Mark Borgerding
|
||||
--It provides a simple function to carry out a fast fourier transformation (FFT).
|
||||
--
|
||||
--module("LuaFFT", package.seeall)
|
||||
|
||||
local cos,sin = math.cos,math.sin
|
||||
|
||||
debugging = false
|
||||
|
||||
function msg(...)
|
||||
if debugging == true then
|
||||
print(...)
|
||||
end
|
||||
end
|
||||
|
||||
---------------------------------------------------------------
|
||||
-- Returns the next possible size for data input
|
||||
--
|
||||
--@param n Size
|
||||
--
|
||||
--@return Next fast size.
|
||||
function next_possible_size(n)
|
||||
local m = n
|
||||
while (1) do
|
||||
m = n
|
||||
while m%2 == 0 do m = m/2 end
|
||||
while m%3 == 0 do m = m/3 end
|
||||
while m%5 == 0 do m = m/5 end
|
||||
if m <= 1 then break end
|
||||
n = n + 1
|
||||
end
|
||||
return n
|
||||
end
|
||||
|
||||
---------------------------------------------------------------
|
||||
--Calculates the Fast Fourier Transformation of the given input
|
||||
--
|
||||
--@param input A set of points that will be transformed.
|
||||
-- At this point, the input has to be a list of complex numbers,
|
||||
-- according to the format in complex.lua.
|
||||
--@param inverse Boolean that controls whether a transformation
|
||||
-- or inverse transformation will be carried out.
|
||||
--@return Returns a list of complex numbers with the same size
|
||||
-- as the input list. Contains the fourier transformation of the input.
|
||||
---------------------------------------------------------------
|
||||
function fft(input, inverse)
|
||||
--the size of input defines the number of total points
|
||||
local num_points = #input
|
||||
|
||||
assert(#input == next_possible_size(#input), string.format("The size of your input is not correct. For your size=%i, use a table of size=%i with zeros at the end.", #input, next_possible_size(#input)))
|
||||
|
||||
local twiddles = {}
|
||||
for i = 0,num_points-1 do
|
||||
local phase = -2*math.pi * i / num_points
|
||||
if inverse then phase = phase * -1 end
|
||||
twiddles[1+i] = complex.new( cos(phase), sin(phase) )
|
||||
end
|
||||
msg("Twiddles initialized...")
|
||||
local factors = calculate_factors(num_points)
|
||||
local output = {}
|
||||
msg("FFT Initialization completed.\nFactors of size " .. #factors)
|
||||
work(input, output, 1, 1, factors,1, twiddles, 1, 1, inverse)
|
||||
return output
|
||||
|
||||
end
|
||||
|
||||
---------------------------------------------------------------
|
||||
--Calculates the real Fast Fourier Transformation of the given real input
|
||||
--
|
||||
|
||||
---------------------------------------------------------------
|
||||
function fftr(input, inverse)
|
||||
|
||||
|
||||
end
|
||||
|
||||
|
||||
|
||||
---------------------------------------------------------------
|
||||
-- Short helper function that provides an easy way to print a list with values.
|
||||
---------------------------------------------------------------
|
||||
function print_list(list)
|
||||
for i,v in ipairs(list) do print(i,v) end
|
||||
end
|
||||
|
||||
---------------------------------------------------------------
|
||||
--The essential work function that performs the FFT
|
||||
---------------------------------------------------------------
|
||||
function work(input, output, out_index, f, factors, factors_index, twiddles, fstride, in_stride, inverse)
|
||||
local p = factors[factors_index]
|
||||
local m = factors[factors_index+1]
|
||||
factors_index = factors_index + 2
|
||||
msg(p,m)
|
||||
local last = out_index + p*m
|
||||
local beg = out_index
|
||||
|
||||
if m == 1 then
|
||||
repeat
|
||||
if type(input[f]) == "number" then output[out_index] = complex.new(input[f],0)
|
||||
else output[out_index] = input[f] end
|
||||
f = f + fstride*in_stride
|
||||
out_index = out_index +1
|
||||
until out_index == last
|
||||
else
|
||||
repeat
|
||||
--msg("Out_index", out_index,"f", f)
|
||||
work(input, output,out_index, f, factors, factors_index, twiddles, fstride*p, in_stride, inverse)
|
||||
f = f + fstride*in_stride
|
||||
out_index = out_index + m
|
||||
until out_index == last
|
||||
end
|
||||
|
||||
out_index = beg
|
||||
|
||||
if p == 2 then butterfly2(output,out_index, fstride, twiddles, m, inverse)
|
||||
elseif p == 3 then butterfly3(output,out_index, fstride, twiddles, m, inverse)
|
||||
elseif p == 4 then butterfly4(output,out_index, fstride, twiddles, m, inverse)
|
||||
elseif p == 5 then butterfly5(output,out_index, fstride, twiddles, m, inverse)
|
||||
else butterfly_generic(output,out_index, fstride, twiddles, m, p, inverse) end
|
||||
end
|
||||
|
||||
|
||||
---------------------------------------------------------------
|
||||
---devides a number into a sequence of factors
|
||||
--
|
||||
--@param num_points Number of points that are used.
|
||||
--
|
||||
--@return Returns a list with the factors
|
||||
---------------------------------------------------------------
|
||||
function calculate_factors(num_points)
|
||||
local buf = {}
|
||||
local p = 4
|
||||
floor_sqrt = math.floor( math.sqrt( num_points) )
|
||||
local n = num_points
|
||||
repeat
|
||||
while n%p > 0 do
|
||||
if p == 4 then p = 2
|
||||
elseif p == 2 then p = 3
|
||||
else p = p + 2 end
|
||||
|
||||
if p > floor_sqrt then p = n end
|
||||
end
|
||||
n = n / p
|
||||
table.insert(buf, p)
|
||||
table.insert(buf, n)
|
||||
until n <= 1
|
||||
return buf
|
||||
end
|
||||
|
||||
|
||||
|
||||
---------------------------------------------------------------
|
||||
--Carries out a butterfly 2 run of the input sample.
|
||||
---------------------------------------------------------------
|
||||
function butterfly2(input,out_index,fstride, twiddles, m, inverse)
|
||||
local i1 = out_index
|
||||
local i2 = out_index + m
|
||||
local ti = 1
|
||||
repeat
|
||||
local t = input[i2]* twiddles[ti]
|
||||
ti = ti + fstride
|
||||
input[i2] = input[i1] - t
|
||||
input[i1] = input[i1] + t
|
||||
i1 = i1 + 1
|
||||
i2 = i2 + 1
|
||||
m = m - 1
|
||||
until m == 0
|
||||
end
|
||||
|
||||
---------------------------------------------------------------
|
||||
--Carries out a butterfly 4 run of the input sample.
|
||||
---------------------------------------------------------------
|
||||
function butterfly4(input,out_index, fstride, twiddles, m, inverse)
|
||||
local ti1, ti2, ti3 = 1,1,1
|
||||
local scratch = {}
|
||||
local k = m
|
||||
local m2 = 2*m
|
||||
local m3 = 3*m
|
||||
local i = out_index
|
||||
|
||||
repeat
|
||||
scratch[0] = input[i+m]*twiddles[ti1]
|
||||
scratch[1] = input[i+m2]*twiddles[ti2]
|
||||
scratch[2] = input[i+m3]*twiddles[ti3]
|
||||
|
||||
scratch[5] = input[i]-scratch[1]
|
||||
input[i] = input[i] + scratch[1]
|
||||
|
||||
scratch[3] = scratch[0] + scratch[2]
|
||||
scratch[4] = scratch[0] - scratch[2]
|
||||
|
||||
input[i+m2] = input[i] - scratch[3]
|
||||
ti1 = ti1 + fstride
|
||||
ti2 = ti2 + fstride*2
|
||||
ti3 = ti3 + fstride*3
|
||||
input[i] = input[i] + scratch[3]
|
||||
|
||||
if inverse then
|
||||
input[i+m][1] = scratch[5][1] - scratch[4][2]
|
||||
input[i+m][2] = scratch[5][2] + scratch[4][1]
|
||||
|
||||
input[i+m3][1] = scratch[5][1] + scratch[4][2]
|
||||
input[i+m3][2] = scratch[5][2] - scratch[4][1]
|
||||
else
|
||||
input[i+m][1] = scratch[5][1] + scratch[4][2]
|
||||
input[i+m][2] = scratch[5][2] - scratch[4][1]
|
||||
|
||||
input[i+m3][1] = scratch[5][1] - scratch[4][2]
|
||||
input[i+m3][2] = scratch[5][2] + scratch[4][1]
|
||||
end
|
||||
i = i + 1
|
||||
k = k - 1
|
||||
until k == 0
|
||||
end
|
||||
|
||||
---------------------------------------------------------------
|
||||
--Carries out a butterfly 3 run of the input sample.
|
||||
---------------------------------------------------------------
|
||||
function butterfly3(input,out_index, fstride, twiddles, m, inverse)
|
||||
local k = m
|
||||
local m2 = m*2
|
||||
local tw1, tw2 = 1,1
|
||||
local scratch = {}
|
||||
local epi3 = twiddles[fstride*m]
|
||||
local i = out_index
|
||||
|
||||
repeat
|
||||
scratch[1] = input[i+m] * twiddles[tw1]
|
||||
scratch[2] = input[i+m2] * twiddles[tw2]
|
||||
scratch[3] = scratch[1] + scratch[2]
|
||||
scratch[0] = scratch[1] - scratch[2]
|
||||
tw1 = tw1 + fstride
|
||||
tw2 = tw2 + fstride*2
|
||||
|
||||
input[i+m][1] = input[i][1] - scratch[3][1]*0.5
|
||||
input[i+m][2] = input[i][2] - scratch[3][2]*0.5
|
||||
|
||||
scratch[0] = scratch[0]:mulnum(epi3[2] )
|
||||
input[i] = input[i] + scratch[3]
|
||||
|
||||
input[i+m2][1] = input[i+m][1] + scratch[0][2]
|
||||
input[i+m2][2] = input[i+m][2] - scratch[0][1]
|
||||
|
||||
input[i+m][1] = input[i+m][1] - scratch[0][2]
|
||||
input[i+m][2] = input[i+m][2] + scratch[0][1]
|
||||
|
||||
i = i + 1
|
||||
k = k-1
|
||||
until k == 0
|
||||
|
||||
end
|
||||
|
||||
---------------------------------------------------------------
|
||||
--Carries out a butterfly 5 run of the input sample.
|
||||
---------------------------------------------------------------
|
||||
function butterfly5(input,out_index, fstride, twiddles, m, inverse)
|
||||
local i0,i1,i2,i3,i4 = out_index,out_index+m,out_index+2*m,out_index+3*m,out_index+4*m
|
||||
local scratch = {}
|
||||
local tw = twiddles
|
||||
local ya,yb = tw[1+fstride*m],tw[1+fstride*2*m]
|
||||
for u = 0,m-1 do
|
||||
scratch[0] = input[i0]
|
||||
|
||||
scratch[1] = input[i1] * tw[1+u*fstride]
|
||||
scratch[2] = input[i2] * tw[1+2*u*fstride]
|
||||
scratch[3] = input[i3] * tw[1+3*u*fstride]
|
||||
scratch[4] = input[i4] * tw[1+4*u*fstride]
|
||||
|
||||
scratch[7] = scratch[1] + scratch[4]
|
||||
scratch[8] = scratch[2] + scratch[3]
|
||||
scratch[9] = scratch[2] - scratch[3]
|
||||
scratch[10] = scratch[1] - scratch[4]
|
||||
|
||||
input[i0][1] = input[i0][1] + scratch[7][1] + scratch[8][1]
|
||||
input[i0][2] = input[i0][2] + scratch[7][2] + scratch[8][2]
|
||||
|
||||
scratch[5] = complex.new( scratch[0][1] + scratch[7][1]*ya[1] + scratch[8][1]*yb[1],
|
||||
scratch[0][2] + scratch[7][2]*ya[1] + scratch[8][2]*yb[1])
|
||||
|
||||
scratch[6] = complex.new( scratch[10][2]*ya[2] + scratch[9][2]*yb[2],
|
||||
-1* scratch[10][1]*ya[2] + scratch[9][1]*yb[2])
|
||||
|
||||
input[i1] = scratch[5] - scratch[6]
|
||||
input[i4] = scratch[5] + scratch[6]
|
||||
|
||||
scratch[11] = complex.new( scratch[0][1] + scratch[7][1]*yb[1] + scratch[8][1]*ya[1],
|
||||
scratch[0][2] + scratch[7][2]*yb[1] + scratch[8][2]*ya[1])
|
||||
|
||||
scratch[12] = complex.new( -1* scratch[10][2]*yb[2] + scratch[9][2]*ya[2],
|
||||
scratch[10][1]*yb[2] - scratch[9][1]*ya[2])
|
||||
|
||||
input[i2] = scratch[11] + scratch[12]
|
||||
input[i3] = scratch[11] - scratch[12]
|
||||
|
||||
i0=i0+1
|
||||
i1=i1+1
|
||||
i2=i2+1
|
||||
i3=i3+1
|
||||
i4=i4+1
|
||||
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
---------------------------------------------------------------
|
||||
--Carries out a generic butterfly run of the input sample.
|
||||
---------------------------------------------------------------
|
||||
function butterfly_generic(input,out_index, fstride, twiddles, m, p, inverse )
|
||||
local norig = #input
|
||||
|
||||
for u = 0,m-1 do
|
||||
local k = u
|
||||
for q1 = 0,p-1 do
|
||||
scratchbuf[q1] = input[out_index+k]
|
||||
k = k + m
|
||||
end
|
||||
|
||||
k = u
|
||||
|
||||
for q1=0,p-1 do
|
||||
local twidx = 0
|
||||
input[out_index+k] = scratchbuf[0]
|
||||
for q=1,p-1 do
|
||||
twidx = twidx + fstride*k
|
||||
if twidx >= Norix then twidx = twidx - Norig end
|
||||
local t = scratchbuf[q] * twiddles[1+twidx]
|
||||
input[out_index+k] = input[out_index+k] + t
|
||||
end
|
||||
k = k + m
|
||||
end
|
||||
end
|
||||
end
|
@ -120,6 +120,7 @@ function Button(position, size, callback, enabled)
|
||||
end
|
||||
|
||||
---@param sprite engine.sprite
|
||||
---@return engine.spritebutton
|
||||
function SpriteButton(sprite, callback, enabled)
|
||||
print("Spritebutton")
|
||||
sprite.__index = SpriteButtonClass
|
||||
|
@ -6,6 +6,20 @@ local json = require("modules.json")
|
||||
|
||||
---Character class, child of Sprite class. Makes work with characters easier by calling some sprite functions with preset character file arguments.
|
||||
---@class engine.character
|
||||
---@field scale number
|
||||
---@field animations table
|
||||
---@field animInfo table
|
||||
---@field sprite engine.sprite
|
||||
---@field singing boolean
|
||||
---@field stagePosition engine.vector2
|
||||
---@field stageCamera engine.vector2
|
||||
---@field flipX boolean
|
||||
---@field beats number
|
||||
---@field animation string
|
||||
---@field icon string
|
||||
---@field starterFrame number
|
||||
---@field colors table
|
||||
---@field module engine.module?
|
||||
local CharacterClass = {}
|
||||
CharacterClass.__index = CharacterClass
|
||||
|
||||
@ -40,6 +54,9 @@ function CharacterClass:PlayAnimation(name)
|
||||
end
|
||||
|
||||
function CharacterClass:Destroy()
|
||||
if self.module then
|
||||
self.module.onClose()
|
||||
end
|
||||
self.sprite:Destroy()
|
||||
self = nil
|
||||
end
|
||||
@ -70,14 +87,15 @@ function _G.Character(name)
|
||||
animInfo = {},
|
||||
sprite = sprite,
|
||||
singing = false,
|
||||
stagePosition = Vector2(0, 0), -- Changeable
|
||||
stageCamera = Vector2(parsed.camera_position[1], parsed.camera_position[2]),
|
||||
stagePosition = Vector2(),
|
||||
hasStagePosition = false,
|
||||
flipX = parsed.flip_x,
|
||||
beats = parsed.beats or 4,
|
||||
animation = "idle",
|
||||
icon = parsed.healthicon,
|
||||
starterFrame = parsed.starter_frame,
|
||||
colors = parsed.healthbar_colors
|
||||
colors = parsed.healthbar_colors,
|
||||
}, CharacterClass)
|
||||
|
||||
for index, alias in next, parsed.animations do
|
||||
@ -105,6 +123,21 @@ function _G.Character(name)
|
||||
newCharacter:PlayAnimation("danceLeft")
|
||||
end
|
||||
|
||||
local charModule = files.read_file(string.format("characters/%s.lua", name))
|
||||
if charModule then
|
||||
local loadedModule = require(string.format("characters.%s", name))
|
||||
modules[#modules+1] = loadedModule
|
||||
if loadedModule.onAdded then
|
||||
loadedModule.onAdded(newCharacter)
|
||||
end
|
||||
newCharacter.module = loadedModule
|
||||
end
|
||||
|
||||
if parsed.stage_positions and parsed.stage_positions[stage.name] then
|
||||
newCharacter.stagePosition = Vector2(parsed.stage_positions[stage.name][1], parsed.stage_positions[stage.name][2])
|
||||
newCharacter.hasStagePosition = true
|
||||
end
|
||||
|
||||
return newCharacter
|
||||
end
|
||||
|
||||
|
@ -133,7 +133,7 @@ function _G.Sprite(image, sheet)
|
||||
name = sprite["_name"]
|
||||
rotated = sprite["_rotated"]
|
||||
end
|
||||
print(name)
|
||||
-- print(name)
|
||||
|
||||
local num = tonumber(string.sub(name, name:len() - 3, name:len()))
|
||||
|
||||
@ -186,7 +186,7 @@ end
|
||||
--- Plays a animation on the sprite.
|
||||
--- @param name string
|
||||
--- @param fps number
|
||||
--- @param loop boolean
|
||||
--- @param loop boolean?
|
||||
--- @param allowed table?
|
||||
function Sprite:PlayAnimation(name, fps, loop, allowed)
|
||||
self.animation = name
|
||||
|
Before Width: | Height: | Size: 2.3 MiB |
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 67 KiB |
@ -1,45 +1,48 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<TextureAtlas imagePath="aBotViz.png">
|
||||
<SubTexture name="viz10000" x="212" y="0" width="68" height="196" />
|
||||
<SubTexture name="viz10001" x="538" y="0" width="68" height="169" frameX="0" frameY="-27" frameWidth="68" frameHeight="196" />
|
||||
<SubTexture name="viz10002" x="538" y="173" width="65" height="135" frameX="-3" frameY="-61" frameWidth="68" frameHeight="196" />
|
||||
<SubTexture name="viz10003" x="806" y="195" width="60" height="96" frameX="-8" frameY="-100" frameWidth="68" frameHeight="196" />
|
||||
<SubTexture name="viz10004" x="928" y="299" width="53" height="53" frameX="-15" frameY="-143" frameWidth="68" frameHeight="196" />
|
||||
<SubTexture name="viz10005" x="531" y="312" width="46" height="28" frameX="-22" frameY="-168" frameWidth="68" frameHeight="196" />
|
||||
<SubTexture name="viz20000" x="407" y="0" width="58" height="209" />
|
||||
<SubTexture name="viz20001" x="870" y="0" width="58" height="183" frameX="0" frameY="-26" frameWidth="58" frameHeight="209" />
|
||||
<SubTexture name="viz20002" x="607" y="189" width="57" height="141" frameX="-1" frameY="-68" frameWidth="58" frameHeight="209" />
|
||||
<SubTexture name="viz20003" x="407" y="213" width="54" height="99" frameX="-4" frameY="-110" frameWidth="58" frameHeight="209" />
|
||||
<SubTexture name="viz20004" x="741" y="300" width="48" height="56" frameX="-10" frameY="-153" frameWidth="58" frameHeight="209" />
|
||||
<SubTexture name="viz20005" x="383" y="316" width="43" height="27" frameX="-15" frameY="-182" frameWidth="58" frameHeight="209" />
|
||||
<SubTexture name="viz30000" x="284" y="0" width="58" height="215" />
|
||||
<SubTexture name="viz30001" x="747" y="0" width="58" height="188" frameX="0" frameY="-27" frameWidth="58" frameHeight="215" />
|
||||
<SubTexture name="viz30002" x="469" y="182" width="58" height="151" frameX="0" frameY="-64" frameWidth="58" frameHeight="215" />
|
||||
<SubTexture name="viz30003" x="212" y="200" width="55" height="100" frameX="-3" frameY="-115" frameWidth="58" frameHeight="215" />
|
||||
<SubTexture name="viz30004" x="271" y="286" width="50" height="57" frameX="-8" frameY="-158" frameWidth="58" frameHeight="215" />
|
||||
<SubTexture name="viz30005" x="668" y="316" width="45" height="22" frameX="-13" frameY="-193" frameWidth="58" frameHeight="215" />
|
||||
<SubTexture name="viz40000" x="346" y="0" width="57" height="216" />
|
||||
<SubTexture name="viz40001" x="809" y="0" width="57" height="191" frameX="0" frameY="-25" frameWidth="57" frameHeight="216" />
|
||||
<SubTexture name="viz40002" x="870" y="187" width="54" height="153" frameX="0" frameY="-63" frameWidth="57" frameHeight="216" />
|
||||
<SubTexture name="viz40003" x="132" y="219" width="52" height="101" frameX="0" frameY="-115" frameWidth="57" frameHeight="216" />
|
||||
<SubTexture name="viz40004" x="806" y="295" width="49" height="58" frameX="0" frameY="-158" frameWidth="57" frameHeight="216" />
|
||||
<SubTexture name="viz40005" x="109" y="324" width="44" height="22" frameX="-2" frameY="-194" frameWidth="57" frameHeight="216" />
|
||||
<SubTexture name="viz60000" x="0" y="0" width="67" height="207" />
|
||||
<SubTexture name="viz60001" x="469" y="0" width="65" height="178" frameX="0" frameY="-29" frameWidth="67" frameHeight="207" />
|
||||
<SubTexture name="viz60002" x="675" y="168" width="62" height="144" frameX="0" frameY="-63" frameWidth="67" frameHeight="207" />
|
||||
<SubTexture name="viz60003" x="71" y="197" width="57" height="101" frameX="0" frameY="-106" frameWidth="67" frameHeight="207" />
|
||||
<SubTexture name="viz60004" x="329" y="220" width="51" height="61" frameX="0" frameY="-146" frameWidth="67" frameHeight="207" />
|
||||
<SubTexture name="viz60005" x="188" y="304" width="45" height="30" frameX="0" frameY="-177" frameWidth="67" frameHeight="207" />
|
||||
<SubTexture name="viz70000" x="71" y="0" width="71" height="193" />
|
||||
<SubTexture name="viz70001" x="675" y="0" width="68" height="164" frameX="0" frameY="-29" frameWidth="71" frameHeight="193" />
|
||||
<SubTexture name="viz70002" x="932" y="0" width="66" height="139" frameX="0" frameY="-54" frameWidth="71" frameHeight="193" />
|
||||
<SubTexture name="viz70003" x="741" y="192" width="61" height="104" frameX="0" frameY="-89" frameWidth="71" frameHeight="193" />
|
||||
<SubTexture name="viz70004" x="271" y="219" width="54" height="63" frameX="0" frameY="-130" frameWidth="71" frameHeight="193" />
|
||||
<SubTexture name="viz70005" x="59" y="302" width="46" height="32" frameX="0" frameY="-161" frameWidth="71" frameHeight="193" />
|
||||
<SubTexture name="viz50000" x="146" y="0" width="62" height="215" />
|
||||
<SubTexture name="viz50001" x="610" y="0" width="61" height="185" frameX="0" frameY="-30" frameWidth="62" frameHeight="215" />
|
||||
<SubTexture name="viz50002" x="932" y="143" width="59" height="152" frameX="0" frameY="-63" frameWidth="62" frameHeight="215" />
|
||||
<SubTexture name="viz50003" x="0" y="211" width="55" height="100" frameX="0" frameY="-115" frameWidth="62" frameHeight="215" />
|
||||
<SubTexture name="viz50004" x="329" y="285" width="50" height="60" frameX="0" frameY="-155" frameWidth="62" frameHeight="215" />
|
||||
<SubTexture name="viz50005" x="0" y="315" width="46" height="27" frameX="0" frameY="-188" frameWidth="62" frameHeight="215" />
|
||||
</TextureAtlas>
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
Created with Funkin Packer v0.1.3 https://neeeoo.github.io/funkin-packer/
|
||||
-->
|
||||
<TextureAtlas imagePath="texture.png" width="620" height="595">
|
||||
<SubTexture name="viz10000" x="71" y="219" width="68" height="196" frameX="-0" frameY="-0" frameWidth="68" frameHeight="196"/>
|
||||
<SubTexture name="viz10001" x="368" y="189" width="68" height="169" frameX="-0" frameY="-27" frameWidth="68" frameHeight="196"/>
|
||||
<SubTexture name="viz10002" x="439" y="143" width="65" height="135" frameX="-3" frameY="-61" frameWidth="68" frameHeight="196"/>
|
||||
<SubTexture name="viz10003" x="503" y="308" width="60" height="95" frameX="-8" frameY="-101" frameWidth="68" frameHeight="196"/>
|
||||
<SubTexture name="viz10004" x="566" y="1" width="53" height="53" frameX="-15" frameY="-143" frameWidth="68" frameHeight="196"/>
|
||||
<SubTexture name="viz10005" x="566" y="57" width="46" height="27" frameX="-22" frameY="-169" frameWidth="68" frameHeight="196"/>
|
||||
<SubTexture name="viz20000" x="187" y="1" width="58" height="209" frameX="-0" frameY="-0" frameWidth="58" frameHeight="209"/>
|
||||
<SubTexture name="viz20001" x="307" y="189" width="58" height="183" frameX="-0" frameY="-26" frameWidth="58" frameHeight="209"/>
|
||||
<SubTexture name="viz20002" x="215" y="403" width="57" height="141" frameX="-1" frameY="-68" frameWidth="58" frameHeight="209"/>
|
||||
<SubTexture name="viz20003" x="508" y="104" width="54" height="99" frameX="-4" frameY="-110" frameWidth="58" frameHeight="209"/>
|
||||
<SubTexture name="viz20004" x="499" y="526" width="48" height="56" frameX="-10" frameY="-153" frameWidth="58" frameHeight="209"/>
|
||||
<SubTexture name="viz20005" x="566" y="185" width="43" height="27" frameX="-15" frameY="-182" frameWidth="58" frameHeight="209"/>
|
||||
<SubTexture name="viz30000" x="61" y="1" width="58" height="215" frameX="-0" frameY="-0" frameWidth="58" frameHeight="215"/>
|
||||
<SubTexture name="viz30001" x="215" y="213" width="58" height="187" frameX="-0" frameY="-28" frameWidth="58" frameHeight="215"/>
|
||||
<SubTexture name="viz30002" x="58" y="430" width="58" height="151" frameX="-0" frameY="-64" frameWidth="58" frameHeight="215"/>
|
||||
<SubTexture name="viz30003" x="508" y="1" width="55" height="100" frameX="-3" frameY="-115" frameWidth="58" frameHeight="215"/>
|
||||
<SubTexture name="viz30004" x="499" y="406" width="50" height="57" frameX="-8" frameY="-158" frameWidth="58" frameHeight="215"/>
|
||||
<SubTexture name="viz30005" x="119" y="572" width="45" height="22" frameX="-13" frameY="-193" frameWidth="58" frameHeight="215"/>
|
||||
<SubTexture name="viz40000" x="1" y="1" width="57" height="216" frameX="-0" frameY="-0" frameWidth="57" frameHeight="216"/>
|
||||
<SubTexture name="viz40001" x="248" y="1" width="56" height="190" frameX="-0" frameY="-26" frameWidth="57" frameHeight="216"/>
|
||||
<SubTexture name="viz40002" x="1" y="430" width="54" height="153" frameX="-0" frameY="-63" frameWidth="57" frameHeight="216"/>
|
||||
<SubTexture name="viz40003" x="439" y="387" width="52" height="101" frameX="-0" frameY="-115" frameWidth="57" frameHeight="216"/>
|
||||
<SubTexture name="viz40004" x="499" y="466" width="48" height="57" frameX="-1" frameY="-159" frameWidth="57" frameHeight="216"/>
|
||||
<SubTexture name="viz40005" x="167" y="572" width="43" height="22" frameX="-3" frameY="-194" frameWidth="57" frameHeight="216"/>
|
||||
<SubTexture name="viz60000" x="1" y="220" width="67" height="207" frameX="-0" frameY="-0" frameWidth="67" frameHeight="207"/>
|
||||
<SubTexture name="viz60001" x="371" y="1" width="65" height="178" frameX="-0" frameY="-29" frameWidth="67" frameHeight="207"/>
|
||||
<SubTexture name="viz60002" x="276" y="375" width="62" height="143" frameX="-0" frameY="-64" frameWidth="67" frameHeight="207"/>
|
||||
<SubTexture name="viz60003" x="439" y="491" width="57" height="101" frameX="-0" frameY="-106" frameWidth="67" frameHeight="207"/>
|
||||
<SubTexture name="viz60004" x="331" y="528" width="51" height="60" frameX="-0" frameY="-147" frameWidth="67" frameHeight="207"/>
|
||||
<SubTexture name="viz60005" x="566" y="152" width="45" height="30" frameX="-0" frameY="-177" frameWidth="67" frameHeight="207"/>
|
||||
<SubTexture name="viz70000" x="142" y="219" width="70" height="193" frameX="-0" frameY="-0" frameWidth="71" frameHeight="193"/>
|
||||
<SubTexture name="viz70001" x="368" y="361" width="68" height="164" frameX="-0" frameY="-29" frameWidth="71" frameHeight="193"/>
|
||||
<SubTexture name="viz70002" x="439" y="1" width="66" height="139" frameX="-0" frameY="-54" frameWidth="71" frameHeight="193"/>
|
||||
<SubTexture name="viz70003" x="439" y="281" width="61" height="103" frameX="-0" frameY="-90" frameWidth="71" frameHeight="193"/>
|
||||
<SubTexture name="viz70004" x="275" y="528" width="53" height="63" frameX="-0" frameY="-130" frameWidth="71" frameHeight="193"/>
|
||||
<SubTexture name="viz70005" x="566" y="117" width="46" height="32" frameX="-0" frameY="-161" frameWidth="71" frameHeight="193"/>
|
||||
<SubTexture name="viz50000" x="122" y="1" width="62" height="215" frameX="-0" frameY="-0" frameWidth="62" frameHeight="215"/>
|
||||
<SubTexture name="viz50001" x="307" y="1" width="61" height="185" frameX="-0" frameY="-30" frameWidth="62" frameHeight="215"/>
|
||||
<SubTexture name="viz50002" x="119" y="418" width="59" height="151" frameX="-0" frameY="-64" frameWidth="62" frameHeight="215"/>
|
||||
<SubTexture name="viz50003" x="507" y="206" width="55" height="99" frameX="-0" frameY="-116" frameWidth="62" frameHeight="215"/>
|
||||
<SubTexture name="viz50004" x="385" y="528" width="50" height="59" frameX="-0" frameY="-156" frameWidth="62" frameHeight="215"/>
|
||||
<SubTexture name="viz50005" x="566" y="87" width="46" height="27" frameX="-0" frameY="-188" frameWidth="62" frameHeight="215"/>
|
||||
</TextureAtlas>
|
@ -1 +1 @@
|
||||
{"ATLAS":{"SPRITES":[{"SPRITE":{"name":"0000","x":0,"y":0,"w":106,"h":38,"rotated":false}},{"SPRITE":{"name":"0001","x":0,"y":43,"w":79,"h":22,"rotated":false}}]},"meta":{"app":"Adobe Animate","version":"23.0.1.70","image":"spritemap1.png","format":"RGBA8888","size":{"w":106,"h":65},"resolution":"1"}}
|
||||
{"ATLAS":{"SPRITES":[{"SPRITE":{"name":"0000","x":0,"y":0,"w":106,"h":38,"rotated":false}},{"SPRITE":{"name":"0001","x":0,"y":43,"w":79,"h":22,"rotated":false}}]},"meta":{"app":"Adobe Animate","version":"23.0.1.70","image":"spritemap1.png","format":"RGBA8888","size":{"w":106,"h":65},"resolution":"1"}}
|
||||
|
Before Width: | Height: | Size: 1.9 MiB After Width: | Height: | Size: 1.3 MiB |
Before Width: | Height: | Size: 3.1 MiB After Width: | Height: | Size: 2.9 MiB |