Initial Commit
This commit is contained in:
commit
2f6ceba3ba
234 changed files with 2634077 additions and 0 deletions
37
.gitignore
vendored
Normal file
37
.gitignore
vendored
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
# Ignore all files
|
||||
*.*
|
||||
|
||||
# File Types
|
||||
!*.mps
|
||||
!*.dat
|
||||
!*.json
|
||||
!*.txt
|
||||
!*.project
|
||||
!*.js
|
||||
!*.zip
|
||||
!*.7z
|
||||
!*.csv
|
||||
!*.ain
|
||||
!*.fnl
|
||||
!*.ks
|
||||
!*.tjs
|
||||
!*.yaml
|
||||
!*.rb
|
||||
!*.rvdata2
|
||||
|
||||
# Other Needed Files
|
||||
!.gitignore
|
||||
!README.md
|
||||
!patch-config.txt
|
||||
!GameUpdate*
|
||||
!patch*
|
||||
!Game.dat
|
||||
|
||||
# Ignore
|
||||
previous_patch_sha.txt
|
||||
kabe3_save.dat
|
||||
kabe3_system.dat
|
||||
psbpack.dat
|
||||
Save*
|
||||
|
||||
# Images
|
||||
BIN
icudtl.dat
Normal file
BIN
icudtl.dat
Normal file
Binary file not shown.
13
package.json
Normal file
13
package.json
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
{
|
||||
"name": "shiganoma",
|
||||
"main": "www/index.html",
|
||||
"js-flags": "--expose-gc",
|
||||
"chromium-args": "--limit-fps=60",
|
||||
"window": {
|
||||
"title": "Paradise Succubus",
|
||||
"toolbar": false,
|
||||
"width": 1280,
|
||||
"height": 720,
|
||||
"icon": "www/icon/icon.png"
|
||||
}
|
||||
}
|
||||
1
www/data/Actors.json
Normal file
1
www/data/Actors.json
Normal file
File diff suppressed because one or more lines are too long
1
www/data/Animations.json
Normal file
1
www/data/Animations.json
Normal file
File diff suppressed because one or more lines are too long
1
www/data/Armors.json
Normal file
1
www/data/Armors.json
Normal file
File diff suppressed because one or more lines are too long
1
www/data/Classes.json
Normal file
1
www/data/Classes.json
Normal file
File diff suppressed because one or more lines are too long
2314820
www/data/CommonEvents.json
Normal file
2314820
www/data/CommonEvents.json
Normal file
File diff suppressed because it is too large
Load diff
1
www/data/ContainerProperties.json
Normal file
1
www/data/ContainerProperties.json
Normal file
File diff suppressed because one or more lines are too long
1
www/data/Enemies.json
Normal file
1
www/data/Enemies.json
Normal file
File diff suppressed because one or more lines are too long
1
www/data/Items.json
Normal file
1
www/data/Items.json
Normal file
File diff suppressed because one or more lines are too long
1
www/data/Map001.json
Normal file
1
www/data/Map001.json
Normal file
|
|
@ -0,0 +1 @@
|
|||
{"autoplayBgm":false,"autoplayBgs":false,"battleback1Name":"Translucent","battleback2Name":"","bgm":{"name":"Stage_X","pan":0,"pitch":100,"volume":50},"bgs":{"name":"","pan":0,"pitch":100,"volume":90},"disableDashing":false,"displayName":"test room","encounterList":[],"encounterStep":30,"height":13,"note":"","parallaxLoopX":false,"parallaxLoopY":false,"parallaxName":"","parallaxShow":true,"parallaxSx":0,"parallaxSy":0,"scrollType":0,"specifyBattleback":false,"tilesetId":1,"width":17,"data":[2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,2816,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"events":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]}
|
||||
1
www/data/Map002.json
Normal file
1
www/data/Map002.json
Normal file
File diff suppressed because one or more lines are too long
1
www/data/Map003.json
Normal file
1
www/data/Map003.json
Normal file
File diff suppressed because one or more lines are too long
1
www/data/Map004.json
Normal file
1
www/data/Map004.json
Normal file
File diff suppressed because one or more lines are too long
1
www/data/Map005.json
Normal file
1
www/data/Map005.json
Normal file
File diff suppressed because one or more lines are too long
1
www/data/Map006.json
Normal file
1
www/data/Map006.json
Normal file
File diff suppressed because one or more lines are too long
1
www/data/Map007.json
Normal file
1
www/data/Map007.json
Normal file
File diff suppressed because one or more lines are too long
1
www/data/Map008.json
Normal file
1
www/data/Map008.json
Normal file
File diff suppressed because one or more lines are too long
1
www/data/Map009.json
Normal file
1
www/data/Map009.json
Normal file
File diff suppressed because one or more lines are too long
1
www/data/Map010.json
Normal file
1
www/data/Map010.json
Normal file
File diff suppressed because one or more lines are too long
1
www/data/Map011.json
Normal file
1
www/data/Map011.json
Normal file
File diff suppressed because one or more lines are too long
1
www/data/Map012.json
Normal file
1
www/data/Map012.json
Normal file
File diff suppressed because one or more lines are too long
1
www/data/Map013.json
Normal file
1
www/data/Map013.json
Normal file
File diff suppressed because one or more lines are too long
1
www/data/Map014.json
Normal file
1
www/data/Map014.json
Normal file
File diff suppressed because one or more lines are too long
1
www/data/Map015.json
Normal file
1
www/data/Map015.json
Normal file
File diff suppressed because one or more lines are too long
1
www/data/Map016.json
Normal file
1
www/data/Map016.json
Normal file
File diff suppressed because one or more lines are too long
1
www/data/Map017.json
Normal file
1
www/data/Map017.json
Normal file
File diff suppressed because one or more lines are too long
1
www/data/Map018.json
Normal file
1
www/data/Map018.json
Normal file
File diff suppressed because one or more lines are too long
1
www/data/Map019.json
Normal file
1
www/data/Map019.json
Normal file
File diff suppressed because one or more lines are too long
1
www/data/Map020.json
Normal file
1
www/data/Map020.json
Normal file
File diff suppressed because one or more lines are too long
1
www/data/Map021.json
Normal file
1
www/data/Map021.json
Normal file
File diff suppressed because one or more lines are too long
1
www/data/Map022.json
Normal file
1
www/data/Map022.json
Normal file
|
|
@ -0,0 +1 @@
|
|||
{"autoplayBgm":false,"autoplayBgs":false,"battleback1Name":"","battleback2Name":"","bgm":{"name":"","pan":0,"pitch":100,"volume":90},"bgs":{"name":"","pan":0,"pitch":100,"volume":90},"disableDashing":false,"displayName":"One's Star [Save] Boundary","encounterList":[],"encounterStep":30,"height":9,"note":"","parallaxLoopX":false,"parallaxLoopY":false,"parallaxName":"StarlitSky","parallaxShow":true,"parallaxSx":0,"parallaxSy":0,"scrollType":0,"specifyBattleback":false,"tilesetId":4,"width":9,"data":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1537,1537,1537,0,0,0,0,0,0,1537,1537,1537,0,0,0,0,0,0,1537,1537,1537,0,0,0,0,0,0,1537,1537,1537,0,0,0,0,0,0,1537,1537,1537,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"events":[null,{"id":1,"name":"EV003-冒険の記録","note":"","pages":[{"conditions":{"actorId":1,"actorValid":false,"itemId":1,"itemValid":false,"selfSwitchCh":"A","selfSwitchValid":false,"switch1Id":1,"switch1Valid":false,"switch2Id":1,"switch2Valid":false,"variableId":1,"variableValid":false,"variableValue":0},"directionFix":true,"image":{"tileId":0,"characterName":"!Crystal","direction":4,"pattern":1,"characterIndex":2},"list":[{"code":352,"indent":0,"parameters":[]},{"code":0,"indent":0,"parameters":[]}],"moveFrequency":3,"moveRoute":{"list":[{"code":0,"parameters":[]}],"repeat":true,"skippable":false,"wait":false},"moveSpeed":3,"moveType":0,"priorityType":1,"stepAnime":true,"through":false,"trigger":0,"walkAnime":true}],"x":4,"y":3},{"id":2,"name":"Move Locations","note":"","pages":[{"conditions":{"actorId":1,"actorValid":false,"itemId":1,"itemValid":false,"selfSwitchCh":"A","selfSwitchValid":false,"switch1Id":1,"switch1Valid":false,"switch2Id":1,"switch2Valid":false,"variableId":1,"variableValid":false,"variableValue":0},"directionFix":false,"image":{"tileId":0,"characterName":"!Door","direction":4,"pattern":1,"characterIndex":1},"list":[{"code":250,"indent":0,"parameters":[{"name":"Magic1","volume":90,"pitch":100,"pan":0}]},{"code":111,"indent":0,"parameters":[6,-1,2]},{"code":201,"indent":1,"parameters":[0,2,19,33,2,1]},{"code":0,"indent":1,"parameters":[]},{"code":412,"indent":0,"parameters":[]},{"code":111,"indent":0,"parameters":[6,-1,4]},{"code":201,"indent":1,"parameters":[0,2,18,32,4,1]},{"code":0,"indent":1,"parameters":[]},{"code":412,"indent":0,"parameters":[]},{"code":111,"indent":0,"parameters":[6,-1,6]},{"code":201,"indent":1,"parameters":[0,2,20,32,6,1]},{"code":0,"indent":1,"parameters":[]},{"code":412,"indent":0,"parameters":[]},{"code":111,"indent":0,"parameters":[6,-1,8]},{"code":201,"indent":1,"parameters":[0,2,19,31,8,1]},{"code":0,"indent":1,"parameters":[]},{"code":412,"indent":0,"parameters":[]},{"code":0,"indent":0,"parameters":[]}],"moveFrequency":3,"moveRoute":{"list":[{"code":0,"parameters":[]}],"repeat":true,"skippable":false,"wait":false},"moveSpeed":3,"moveType":0,"priorityType":0,"stepAnime":true,"through":false,"trigger":1,"walkAnime":true}],"x":4,"y":5}]}
|
||||
1
www/data/Map023.json
Normal file
1
www/data/Map023.json
Normal file
File diff suppressed because one or more lines are too long
1
www/data/Map024.json
Normal file
1
www/data/Map024.json
Normal file
File diff suppressed because one or more lines are too long
1
www/data/Map025.json
Normal file
1
www/data/Map025.json
Normal file
File diff suppressed because one or more lines are too long
1
www/data/Map026.json
Normal file
1
www/data/Map026.json
Normal file
File diff suppressed because one or more lines are too long
1
www/data/Map027.json
Normal file
1
www/data/Map027.json
Normal file
File diff suppressed because one or more lines are too long
1
www/data/Map028.json
Normal file
1
www/data/Map028.json
Normal file
File diff suppressed because one or more lines are too long
1
www/data/Map029.json
Normal file
1
www/data/Map029.json
Normal file
File diff suppressed because one or more lines are too long
1
www/data/Map030.json
Normal file
1
www/data/Map030.json
Normal file
File diff suppressed because one or more lines are too long
1
www/data/Map031.json
Normal file
1
www/data/Map031.json
Normal file
File diff suppressed because one or more lines are too long
1
www/data/Map032.json
Normal file
1
www/data/Map032.json
Normal file
File diff suppressed because one or more lines are too long
1
www/data/Map033.json
Normal file
1
www/data/Map033.json
Normal file
File diff suppressed because one or more lines are too long
1
www/data/MapInfos.json
Normal file
1
www/data/MapInfos.json
Normal file
|
|
@ -0,0 +1 @@
|
|||
[null,{"id":1,"expanded":false,"name":"test room","order":1,"parentId":0,"scrollX":639,"scrollY":380},{"id":2,"expanded":true,"name":"Boundary Expanse","order":2,"parentId":0,"scrollX":969,"scrollY":824},{"id":3,"expanded":true,"name":"Before the adventure begins","order":8,"parentId":0,"scrollX":639,"scrollY":380},{"id":4,"expanded":true,"name":"For stories","order":9,"parentId":0,"scrollX":639,"scrollY":380.5},{"id":5,"expanded":true,"name":"Recollection Room","order":10,"parentId":0,"scrollX":1490,"scrollY":372},{"id":6,"expanded":true,"name":"Template event storage","order":11,"parentId":0,"scrollX":631,"scrollY":380},{"id":7,"expanded":true,"name":"Paradise Island Boundary","order":3,"parentId":2,"scrollX":639,"scrollY":380},{"id":8,"expanded":true,"name":"Paradise Island/landing point selection","order":12,"parentId":0,"scrollX":639,"scrollY":380.5},{"id":9,"expanded":true,"name":"Paradise Island/Second Area Selection","order":16,"parentId":0,"scrollX":572.5,"scrollY":389},{"id":10,"expanded":true,"name":"Paradise Island/Third Area Selection","order":20,"parentId":0,"scrollX":598.5,"scrollY":381},{"id":11,"expanded":true,"name":"1-1","order":13,"parentId":8,"scrollX":549.5,"scrollY":381},{"id":12,"expanded":true,"name":"1-2","order":14,"parentId":11,"scrollX":625.5,"scrollY":819.5},{"id":13,"expanded":true,"name":"1-3","order":15,"parentId":12,"scrollX":549.5,"scrollY":381},{"id":14,"expanded":true,"name":"2-1","order":17,"parentId":9,"scrollX":683.5,"scrollY":640},{"id":15,"expanded":true,"name":"2-2","order":18,"parentId":14,"scrollX":549.5,"scrollY":819},{"id":16,"expanded":true,"name":"2-3","order":19,"parentId":15,"scrollX":549.5,"scrollY":381},{"id":17,"expanded":true,"name":"3-1","order":21,"parentId":10,"scrollX":590.5,"scrollY":381},{"id":18,"expanded":true,"name":"3-2","order":22,"parentId":17,"scrollX":549.5,"scrollY":381},{"id":19,"expanded":true,"name":"3-3","order":23,"parentId":18,"scrollX":590.5,"scrollY":827},{"id":20,"expanded":true,"name":"Kamran, the place of finality","order":24,"parentId":0,"scrollX":631,"scrollY":819.5},{"id":21,"expanded":false,"name":"Hero Boundary","order":4,"parentId":2,"scrollX":675.5,"scrollY":464.5},{"id":22,"expanded":false,"name":"One's Star [Save] Boundary","order":5,"parentId":2,"scrollX":633.5,"scrollY":380.5},{"id":23,"expanded":false,"name":"Reminiscence room of degerminated species","order":6,"parentId":2,"scrollX":639,"scrollY":380},{"id":24,"expanded":true,"name":"credit","order":25,"parentId":20,"scrollX":639,"scrollY":380.5},{"id":25,"expanded":true,"name":"Hakai Seed Route Ending","order":26,"parentId":24,"scrollX":639,"scrollY":380.5},{"id":26,"expanded":true,"name":"Creation species root ending","order":27,"parentId":24,"scrollX":633.5,"scrollY":380.5},{"id":27,"expanded":true,"name":"Chaos Route Ending","order":28,"parentId":24,"scrollX":639,"scrollY":380.5},{"id":28,"expanded":true,"name":"World truth 1","order":29,"parentId":24,"scrollX":639,"scrollY":380.5},{"id":29,"expanded":true,"name":"The truth of the world 2","order":30,"parentId":24,"scrollX":633.5,"scrollY":380.5},{"id":30,"expanded":true,"name":"The truth of the world 3","order":31,"parentId":24,"scrollX":633.5,"scrollY":380.5},{"id":31,"expanded":true,"name":"The truth of the world 4","order":32,"parentId":24,"scrollX":639,"scrollY":380.5},{"id":32,"expanded":true,"name":"The truth of the world 5","order":33,"parentId":24,"scrollX":633.5,"scrollY":380.5},{"id":33,"expanded":false,"name":"border of entertainment","order":7,"parentId":2,"scrollX":633.5,"scrollY":380.5}]
|
||||
1
www/data/Skills.json
Normal file
1
www/data/Skills.json
Normal file
File diff suppressed because one or more lines are too long
1
www/data/States.json
Normal file
1
www/data/States.json
Normal file
File diff suppressed because one or more lines are too long
1
www/data/System.json
Normal file
1
www/data/System.json
Normal file
File diff suppressed because one or more lines are too long
1
www/data/Tilesets.json
Normal file
1
www/data/Tilesets.json
Normal file
File diff suppressed because one or more lines are too long
142090
www/data/Troops.json
Normal file
142090
www/data/Troops.json
Normal file
File diff suppressed because it is too large
Load diff
1
www/data/Weapons.json
Normal file
1
www/data/Weapons.json
Normal file
File diff suppressed because one or more lines are too long
16
www/img/tilesets/Dungeon_A1.txt
Normal file
16
www/img/tilesets/Dungeon_A1.txt
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
Water A|水場A
|
||||
Deep Water|深い水場
|
||||
Swamp Grass|水草
|
||||
Lotus Pads (Flowers)|蓮の葉(花)
|
||||
Lava|溶岩
|
||||
Waterfall A (Lava Cave)|滝A(溶岩洞窟)
|
||||
Water B (Grass Maze)|水場B(草迷宮)
|
||||
Waterfall B (Grass Maze)|滝B(草迷宮)
|
||||
Water C (Dirt Cave)|水場C(土洞窟)
|
||||
Waterfall C (Dirt Cave)|滝C(土洞窟)
|
||||
Water D (Rock Cave)|水場D(岩洞窟)
|
||||
Waterfall D (Rock Cave)|滝D(岩洞窟)
|
||||
Water E (Crystal)|水場E(水晶)
|
||||
Waterfall E (Crystal)|滝E(水晶)
|
||||
Canal|水路
|
||||
Waterfall (Stone Wall)|滝F(石壁)
|
||||
32
www/img/tilesets/Dungeon_A2.txt
Normal file
32
www/img/tilesets/Dungeon_A2.txt
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
Ground A (Dirt Cave)|床A(土洞窟)
|
||||
Ground B (Grass Maze)|床B(草迷宮)
|
||||
Dark Ground A (Dirt Cave)|濃い床A(土洞窟)
|
||||
Dark Ground B (Grass Maze)|濃い床B(草迷宮)
|
||||
Hole A (Dirt Cave)|穴A(土洞窟)
|
||||
Hole B (Grass Maze)|穴B(草迷宮)
|
||||
Hole I (Stone Floor)|穴I(石の床)
|
||||
Ground Cracks|床のひび割れ
|
||||
Ground C (Rock Cave)|床C(岩洞窟)
|
||||
Ground D (Crystal)|床D(水晶)
|
||||
Dark Ground C (Rock Cave)|濃い床C(岩洞窟)
|
||||
Dark Ground D (Crystal)|濃い床D(水晶)
|
||||
Hole C (Rock Cave)|穴C(岩洞窟)
|
||||
Hole D (Crystal)|穴D(水晶)
|
||||
Hole J|穴J
|
||||
Soil on Ground|床の汚れ
|
||||
Ground E (Lava Cave)|床E(溶岩洞窟)
|
||||
Ground F (In Body)|床F(体内)
|
||||
Dark Ground E (Lava Cave)|濃い床E(溶岩洞窟)
|
||||
Rug A|じゅうたんA
|
||||
Hole E (Lava Cave)|穴E(溶岩洞窟)
|
||||
Hole F (In Body)|穴F(体内)
|
||||
Fencepost|柵
|
||||
Moss on Ground|床の苔
|
||||
Ground G (Ice Cave)|床G(氷洞窟)
|
||||
Ground H (Demonic World)|床H(魔界)
|
||||
Dark Ground G (Ice Cave)|濃い床G(氷洞窟)
|
||||
Rug B|じゅうたんB
|
||||
Hole G (Ice Cave)|穴G(氷洞窟)
|
||||
Hole H (Demonic World)|穴H(魔界)
|
||||
Raised Stone|石段
|
||||
Poison Swamp|毒の沼
|
||||
48
www/img/tilesets/Dungeon_A4.txt
Normal file
48
www/img/tilesets/Dungeon_A4.txt
Normal file
|
|
@ -0,0 +1,48 @@
|
|||
Wall A (Dirt Cave)|壁A(土洞窟)
|
||||
Wall B (Rock Cave)|壁B(岩洞窟)
|
||||
Wall C (Lava Cave)|壁C(溶岩洞窟)
|
||||
Wall D (Ice Cave)|壁D(氷洞窟)
|
||||
Wall E (Grass Maze)|壁E(草迷宮)
|
||||
Wall F (Crystal)|壁F(水晶)
|
||||
Wall G (In Body)|壁G(体内)
|
||||
Wall H (Demonic World)|壁H(魔界)
|
||||
Wall A (Dirt Cave)|壁A(土洞窟)
|
||||
Wall B (Rock Cave)|壁B(岩洞窟)
|
||||
Wall C (Lava Cave)|壁C(溶岩洞窟)
|
||||
Wall D (Ice Cave)|壁D(氷洞窟)
|
||||
Wall E (Grass Maze)|壁E(草迷宮)
|
||||
Wall F (Crystal)|壁F(水晶)
|
||||
Wall G (In Body)|壁G(体内)
|
||||
Wall H (Demonic World)|壁H(魔界)
|
||||
Wall I (Stone)|壁I(石)
|
||||
Wall J (Brick)|壁J(レンガ)
|
||||
Wall K (Brick)|壁K(レンガ)
|
||||
Wall L (Stone)|壁L(石)
|
||||
Wall M (Stone)|壁M(石)
|
||||
Wall N (Castle)|壁N(城)
|
||||
Wall O (Fort)|壁O(砦)
|
||||
Wall P (Demon Castle)|壁P(魔王城)
|
||||
Wall I (Stone)|壁I(石)
|
||||
Wall J (Brick)|壁J(レンガ)
|
||||
Wall K (Brick)|壁K(レンガ)
|
||||
Wall L (Stone)|壁L(石)
|
||||
Wall M (Stone)|壁M(石)
|
||||
Wall N (Castle)|壁N(城)
|
||||
Wall O (Fort)|壁O(砦)
|
||||
Wall P (Demon Castle)|壁P(魔王城)
|
||||
Wall Q (Temple)|壁Q(神殿)
|
||||
Wall R (Marble)|壁R(大理石)
|
||||
Wall S (Frozen)|壁S(凍結)
|
||||
Wall T (Factory)|壁T(工場)
|
||||
Ledge A (Dirt Cave)|段差A(土洞窟)
|
||||
Ledge B (Rock Cave)|段差B(岩洞窟)
|
||||
Ledge C (Lava Cave)|段差C(溶岩洞窟)
|
||||
Ledge D (Ice Cave)|段差D(氷洞窟)
|
||||
Wall Q (Temple)|壁Q(神殿)
|
||||
Wall R (Marble)|壁R(大理石)
|
||||
Wall S (Frozen)|壁S(凍結)
|
||||
Wall T (Factory)|壁T(工場)
|
||||
Ledge A (Dirt Cave)|段差A(土洞窟)
|
||||
Ledge B (Rock Cave)|段差B(岩洞窟)
|
||||
Ledge C (Lava Cave)|段差C(溶岩洞窟)
|
||||
Ledge D (Ice Cave)|段差D(氷洞窟)
|
||||
128
www/img/tilesets/Dungeon_A5.txt
Normal file
128
www/img/tilesets/Dungeon_A5.txt
Normal file
|
|
@ -0,0 +1,128 @@
|
|||
Darkness|暗闇
|
||||
Translucent Floor A|半透明の床A
|
||||
Translucent Floor B|半透明の床B
|
||||
Translucent Floor C|半透明の床C
|
||||
Translucent Floor D|半透明の床D
|
||||
Stairs A (Translucent)|階段A(半透明)
|
||||
Stairs B (Translucent)|階段B(半透明)
|
||||
Wire Mesh|金網
|
||||
Transparent|透明
|
||||
Translucent Floor A|半透明の床A
|
||||
Translucent Floor B|半透明の床B
|
||||
Translucent Floor C|半透明の床C
|
||||
Translucent Floor D|半透明の床D
|
||||
Stairs A (Translucent)|階段C(半透明)
|
||||
Stairs B (Translucent)|階段D(半透明)
|
||||
Wire Mesh|金網
|
||||
Ground A (Dirt Cave)|床A(土洞窟)
|
||||
Ground B (Rock Cave)|床B(岩洞窟)
|
||||
Ground C (Lava Cave)|床C(溶岩洞窟)
|
||||
Ground D (Ice Cave)|床D(氷洞窟)
|
||||
Ground E (Grass Maze)|床E(草迷宮)
|
||||
Ground F (Crystal)|床F(水晶)
|
||||
Ground G (In Body)|床G(体内)
|
||||
Ground H (Demonic World)|床H(魔界)
|
||||
Stairs A (Dirt Cave, Left)|階段A(土洞窟・左)
|
||||
Stairs A (Dirt Cave, Center)|階段A(土洞窟・中央)
|
||||
Stairs A (Dirt Cave, Right)|階段A(土洞窟・右)
|
||||
Stairs A (Dirt Cave)|階段A(土洞窟)
|
||||
Stairs B (Rock Cave, Left)|階段B(岩洞窟・左)
|
||||
Stairs B (Rock Cave, Center)|階段B(岩洞窟・中央)
|
||||
Stairs B (Rock Cave, Right)|階段B(岩洞窟・右)
|
||||
Stairs B (Rock Cave)|階段B(岩洞窟)
|
||||
Cobblestones A|石畳A
|
||||
Cobblestones B|石畳B
|
||||
Cobblestones C|石畳C
|
||||
Cobblestones D|石畳D
|
||||
Cobblestones E|石畳E
|
||||
Cobblestones F|石畳F
|
||||
Cobblestones G|石畳G
|
||||
Interior Floor A (Demon Castle)|内装床A(魔王城)
|
||||
Stairs C (Lava Cave, Left)|階段C(溶岩洞窟・左)
|
||||
Stairs C (Lava Cave, Center)|階段C(溶岩洞窟・中央)
|
||||
Stairs C (Lava Cave, Right)|階段C(溶岩洞窟・右)
|
||||
Stairs C (Lava Cave)|階段C(溶岩洞窟)
|
||||
Stairs D (Ice Cave, Left)|階段D(氷洞窟・左)
|
||||
Stairs D (Ice Cave, Center)|階段D(氷洞窟・中央)
|
||||
Stairs D (Ice Cave, Right)|階段D(氷洞窟・右)
|
||||
Stairs D (Ice Cave)|階段D(氷洞窟)
|
||||
Cobblestones H|石畳H
|
||||
Interior Floor B (Concrete)|内装床B(コンクリート)
|
||||
Icy Ground A|氷の床A
|
||||
Interior Floor C (Factory)|内装床C(工場)
|
||||
Decorative Tile|舗装床
|
||||
Cobblestones I|石畳I
|
||||
Cobblestones J|石畳J
|
||||
Decorative Tile|化粧タイル
|
||||
Stairs E (Grass Maze, Left)|階段E(草迷宮・左)
|
||||
Stairs E (Grass Maze, Center)|階段E(草迷宮・中央)
|
||||
Stairs E (Grass Maze, Right)|階段E(草迷宮・右)
|
||||
Stairs E (Grass Maze)|階段E(草迷宮)
|
||||
Stairs F (Crystal, Left)|階段F(水晶・左)
|
||||
Stairs F (Crystal, Center)|階段F(水晶・中央)
|
||||
Stairs F (Crystal, Right)|階段F(水晶・右)
|
||||
Stairs F (Crystal)|階段F(水晶)
|
||||
Stairs G (In Body, Left)|階段G(体内・左)
|
||||
Stairs G (In Body, Center)|階段G(体内・中央)
|
||||
Stairs G (In Body, Right)|階段G(体内・右)
|
||||
Stairs G (In Body)|階段G(体内)
|
||||
Stairs H (Demonic World, Left)|階段H(魔界・左)
|
||||
Stairs H (Demonic World, Center)|階段H(魔界・中央)
|
||||
Stairs H (Demonic World, Right)|階段H(魔界・右)
|
||||
Stairs H (Demonic World)|階段H(魔界)
|
||||
Stairs I (Stone, Left)|階段I(石・左)
|
||||
Stairs I (Stone, Center)|階段I(石・中央)
|
||||
Stairs I (Stone, Right)|階段I(石・右)
|
||||
Stairs I (Stone)|階段I(石)
|
||||
Stairs J (Ruins, Left)|階段J(廃墟・左)
|
||||
Stairs J (Ruins, Center)|階段J(廃墟・中央)
|
||||
Stairs J (Ruins, Right)|階段J(廃墟・右)
|
||||
Stairs J (Ruins)|階段J(廃墟)
|
||||
Stairs K (Stone, Left)|階段K(石・左)
|
||||
Stairs K (Stone, Center)|階段K(石・中央)
|
||||
Stairs K (Stone, Right)|階段K(石・右)
|
||||
Stairs K (Stone)|階段K(石)
|
||||
Stairs L (Ruins, Left)|階段L(廃墟・左)
|
||||
Stairs L (Ruins, Center)|階段L(廃墟・中央)
|
||||
Stairs L (Ruins, Right)|階段L(廃墟・右)
|
||||
Stairs L (Ruins)|階段L(廃墟)
|
||||
Ground (Dirt Cave, Ruins)|床A(土洞窟・廃墟)
|
||||
Ground (Rock Cave, Ruins)|床B(岩洞窟・廃墟)
|
||||
Ground (Lava Cave, Ruins)|床C(溶岩洞窟・廃墟)
|
||||
Ground (Ice Cave, Ruins)|床D(氷洞窟・廃墟)
|
||||
Ground (Grass Maze, Ruins)|床E(草迷宮・廃墟)
|
||||
Ground (Crystal, Ruins)|床F(水晶・廃墟)
|
||||
Ground (In Body, Ruins)|床G(体内・廃墟)
|
||||
Ground (Demonic World, Ruins)|床H(魔界・廃墟)
|
||||
Cobblestones A (Ruins)|石畳A(廃墟)
|
||||
Cobblestones B (Ruins)|石畳B(廃墟)
|
||||
Cobblestones C (Ruins)|石畳C(廃墟)
|
||||
Cobblestones D (Ruins)|石畳D(廃墟)
|
||||
Cobblestones E (Ruins)|石畳E(廃墟)
|
||||
Cobblestones F (Ruins)|石畳F(廃墟)
|
||||
Cobblestones G (Ruins)|石畳G(廃墟)
|
||||
Interior Floor A (Demon Castle, Ruins)|内装床A(魔王城・廃墟)
|
||||
Cobblestones H (Ruins)|石畳H(廃墟)
|
||||
Interior Floor B (Concrete, Ruins)|内装床B(コンクリート・廃墟)
|
||||
Icy Ground B|氷の床B
|
||||
Interior Floor D (Factory)|内装床D(工場)
|
||||
Decorative Tile (Ruins)|舗装床(廃墟)
|
||||
Cobblestones I (Ruins)|石畳I(廃墟)
|
||||
Cobblestones J (Ruins)|石畳J(廃墟)
|
||||
Decorative Tile (Ruins)|化粧タイル(廃墟)
|
||||
Large Relief Floor Tile A|大きなレリーフ床A
|
||||
Large Relief Floor Tile A|大きなレリーフ床A
|
||||
Large Relief Floor Tile B|大きなレリーフ床B
|
||||
Large Relief Floor Tile B|大きなレリーフ床B
|
||||
Directional Floor Tile A (Down)|方向床A(下)
|
||||
Directional Floor Tile B (Up)|方向床B(上)
|
||||
Relief Floor Tile A (Gold)|レリーフ床A(金)
|
||||
Relief Floor Tile B (Gold)|レリーフ床B(金)
|
||||
Large Relief Floor Tile A|大きなレリーフ床A
|
||||
Large Relief Floor Tile A|大きなレリーフ床A
|
||||
Large Relief Floor Tile B|大きなレリーフ床B
|
||||
Large Relief Floor Tile B|大きなレリーフ床B
|
||||
Directional Floor Tile C (Left)|方向床C(左)
|
||||
Directional Floor Tile D (Right)|方向床D(右)
|
||||
Relief Floor Tile C (Gold)|レリーフ床C(金)
|
||||
Relief Floor Tile D (Gold, Ruins)|レリーフ床D(金・廃墟)
|
||||
256
www/img/tilesets/Dungeon_B.txt
Normal file
256
www/img/tilesets/Dungeon_B.txt
Normal file
|
|
@ -0,0 +1,256 @@
|
|||
Transparent|透明
|
||||
Beanstalk A|豆の木A
|
||||
Stairs A (Up)|階段A(上り)
|
||||
Stairs B (Up)|階段B(上り)
|
||||
Metal Ladder|鉄ばしご
|
||||
Rope Ladder|縄ばしご
|
||||
Rope|ロープ
|
||||
Vines A|ツタA
|
||||
Beanstalk B (Snow)|豆の木B(雪)
|
||||
Beanstalk C (Dead)|豆の木C(枯れ)
|
||||
Stairs A (Down)|階段A(下り)
|
||||
Stairs B (Down)|階段B(下り)
|
||||
Metal Ladder|鉄ばしご
|
||||
Rope Ladder|縄ばしご
|
||||
Rope|ロープ
|
||||
Vines A|ツタA
|
||||
Crumbling Wall|崩れた壁
|
||||
Dug-Up Ground|掘られた床
|
||||
Stairs C (Up)|階段C(上り)
|
||||
Stairs D (Up)|階段D(上り)
|
||||
Metal Ladder|鉄ばしご
|
||||
Rope Ladder|縄ばしご
|
||||
Rope|ロープ
|
||||
Vines B (Down)|ツタB(下り)
|
||||
Crumbling Wall|崩れた壁
|
||||
Dug-Up Ground|掘られた床
|
||||
Stairs C (Down)|階段C(下り)
|
||||
Stairs D (Down)|階段D(下り)
|
||||
Hole A (Metal Ladder)|穴A(鉄ばしご)
|
||||
Hole B (Rope Ladder)|穴B(縄ばしご)
|
||||
Hole C (Rope)|穴C(ロープ)
|
||||
Hole D|穴D
|
||||
Log Bridge (V)|丸太の橋(縦)
|
||||
Log Bridge (H)|丸太の橋(横)
|
||||
Wood Bridge (V)|木の橋(縦)
|
||||
Wood Bridge (H)|木の橋(横)
|
||||
Stone Bridge (V)|石の橋(縦)
|
||||
Stone Bridge (H)|石の橋(横)
|
||||
Wood Bridge (V)|木の橋(縦)
|
||||
Wood Bridge (H)|木の橋(横)
|
||||
Bridge Spar (Wood, Center A)|橋げた(木・中央A)
|
||||
Bridge Spar (Wood, Left)|橋げた(木・左)
|
||||
Bridge Spar (Wood, Center B)|橋げた(木・中央B)
|
||||
Bridge Spar (Wood, Right)|橋げた(木・右)
|
||||
Bridge Spar (Stone, Center A)|橋げた(石・中央A)
|
||||
Bridge Spar (Stone, Left)|橋げた(石・左)
|
||||
Bridge Spar (Stone, Center B)||橋げた(石・中央B)
|
||||
Bridge Spar (Stone, Right)|橋げた(石・右)
|
||||
Gravel A (Dirt Cave)|砂利A(土洞窟)
|
||||
Gravel B (Rock Cave)|砂利B(岩洞窟)
|
||||
Gravel C (Lava Cave)|砂利C(溶岩洞窟)
|
||||
Ice Pieces |氷の欠片
|
||||
Small Sprouts A (Grass Maze)|小さな芽A(草迷宮)
|
||||
Small Crystals|小さな水晶
|
||||
Detritus (In Body)|床装飾(体内)
|
||||
Small Sprouts B (Demonic World)|小さな芽B(魔界)
|
||||
Boulder A (Dirt Cave)|岩A(土洞窟)
|
||||
Boulder B (Rock Cave)|岩B(岩洞窟)
|
||||
Boulder C (Lava Cave)|岩C(溶岩洞窟)
|
||||
Lump of Ice|氷塊
|
||||
Boulder D (Grass Maze)|岩D(草迷宮)
|
||||
Crystal|水晶
|
||||
Spherical Lump|球状突起物
|
||||
Boulder E (Demonic World)|岩E(魔界)
|
||||
Tall Rock A (Dirt Cave)|大きな岩A(土洞窟)
|
||||
Tall Rock B (Rock Cave)|大きな岩B(岩洞窟)
|
||||
Tall Rock C (Lava Cave)|大きな岩C(溶岩洞窟)
|
||||
Tall Lump of Ice|大きな氷塊
|
||||
Tall Rock D (Grass Maze)|大きな岩D(草迷宮)
|
||||
Large Crystal|大きな水晶
|
||||
Large Growth|大型突起物
|
||||
Tall Rock E (Demonic World)|大きな岩E(魔界)
|
||||
Tall Rock A (Dirt Cave)|大きな岩A(土洞窟)
|
||||
Tall Rock B (Rock Cave)|大きな岩B(岩洞窟)
|
||||
Tall Rock C (Lava Cave)|大きな岩C(溶岩洞窟)
|
||||
Tall Lump of Ice|大きな氷塊
|
||||
Tall Rock D (Grass Maze)|大きな岩D(草迷宮)
|
||||
Large Crystal|大きな水晶
|
||||
Large Growth|大型突起物
|
||||
Tall Rock E (Demonic World)|大きな岩E(魔界)
|
||||
Stone Pillar A|石の柱A
|
||||
Stone Pillar B|石の柱B
|
||||
Stone Pillar C|石の柱C
|
||||
Stone Pillar C (Moss)|石の柱C(苔)
|
||||
Stone Pillar C (Ice)|石の柱C(氷)
|
||||
Wood Pillar|木の柱
|
||||
Stone Pillar D|石の柱D
|
||||
Orb Pillar|オーブの柱
|
||||
Stone Pillar A|石の柱A
|
||||
Stone Pillar B|石の柱B
|
||||
Stone Pillar C|石の柱C
|
||||
Stone Pillar C (Moss)|石の柱C(苔)
|
||||
Stone Pillar C (Ice)|石の柱C(氷)
|
||||
Wood Pillar|木の柱
|
||||
Stone Pillar D|石の柱D
|
||||
Orb Pillar|オーブの柱
|
||||
Broken Stone Pillar A|折れた石の柱A
|
||||
Broken Stone Pillar B|折れた石の柱B
|
||||
Broken Stone Pillar C|折れた石の柱C
|
||||
Broken Stone Pillar C (Moss)|折れた石の柱C(苔)
|
||||
Broken Stone Pillar C (Ice)|折れた石の柱C(氷)
|
||||
Broken Wood Pillar A|折れた木の柱A
|
||||
Broken Stone Pillar D|折れた石の柱D
|
||||
Broken Orb Pillar|折れたオーブの柱
|
||||
Rubble|瓦礫A
|
||||
Rubble (Moss)|瓦礫B(苔)
|
||||
Rubble (Ice)|瓦礫C(氷)
|
||||
Broken Wood Pillar B|折れた木の柱B
|
||||
Rubble (Dirt)|瓦礫D(土)
|
||||
Scrap Wood|端材
|
||||
Barricade A (H)|バリケードA(横)
|
||||
Barricade B (V)|バリケードB(縦)
|
||||
Wall Bracing|壁の補強材
|
||||
Wall Bracing|壁の補強材
|
||||
Wall Bracing|壁の補強材
|
||||
Wall Bracing|壁の補強材
|
||||
Wall Bracing|壁の補強材
|
||||
Wall Bracing (Abandoned Mine)|壁の補強材(廃坑)
|
||||
Wall Bracing (Abandoned Mine)|壁の補強材(廃坑)
|
||||
Wall Bracing (Abandoned Mine)|壁の補強材(廃坑)
|
||||
Wall Bracing|壁の補強材
|
||||
Wall Bracing|壁の補強材
|
||||
Wall Bracing|壁の補強材
|
||||
Wall Bracing|壁の補強材
|
||||
Wall Bracing|壁の補強材
|
||||
Wall Bracing (Abandoned Mine)|壁の補強材(廃坑)
|
||||
Wall Bracing (Abandoned Mine)|壁の補強材(廃坑)
|
||||
Wall Bracing (Abandoned Mine)|壁の補強材(廃坑)
|
||||
Exit A|外への出口A
|
||||
Entrance A|入口A
|
||||
Exit B|外への出口B
|
||||
Entrance B|入口B
|
||||
Exit C|外への出口C
|
||||
Entrance C|入口C
|
||||
Window A|窓A
|
||||
Window B|窓B
|
||||
Exit D|外への出口D
|
||||
Entrance D|入口D
|
||||
Exit E|外への出口E
|
||||
Entrance E|入口E
|
||||
Light From Exit A (Top)|出口からの光A(上)
|
||||
Light From Exit B (Bottom)|出口からの光B(下)
|
||||
Window A|窓A
|
||||
Window B|窓B
|
||||
Spider Web|蜘蛛の巣
|
||||
Stone Tablet|石版
|
||||
Stone Tablet (Ruins)|石版(廃墟)
|
||||
Entrance A|入口A
|
||||
Entrance A (Extend)|入口A(延長部分)
|
||||
Entrance A (Top Half A)|入口A(上半分A)
|
||||
Entrance B|入口B
|
||||
Entrance A (Top Half B)|入口A(上半分B)
|
||||
Wall Vines A|壁のツタA
|
||||
Wall Vines B|壁のツタB
|
||||
Wall Vines C|壁のツタC
|
||||
Wall Fern|壁のシダ
|
||||
Fissures A|亀裂A
|
||||
Fissures B|亀裂B
|
||||
Fissures C|亀裂C
|
||||
Fissures D|亀裂D
|
||||
Wall Vines A|壁のツタA
|
||||
Wall Vines B|壁のツタB
|
||||
Wall Vines C|壁のツタC
|
||||
Wall Moss|壁の苔
|
||||
Fissures A|亀裂A
|
||||
Fissures B|亀裂B
|
||||
Fissures C|亀裂C
|
||||
Fissures D|亀裂D
|
||||
Monument A|石碑A
|
||||
Monument B|石碑B
|
||||
Large Monument|大きな石碑
|
||||
Large Monument|大きな石碑
|
||||
Large Monument|大きな石碑
|
||||
Large Monument (Lit)|大きな石碑(光)
|
||||
Large Monument (Lit)|大きな石碑(光)
|
||||
Large Monument (Lit)|大きな石碑(光)
|
||||
Monument A|石碑A
|
||||
Monument C|石碑C
|
||||
Large Monument|大きな石碑
|
||||
Large Monument|大きな石碑
|
||||
Large Monument|大きな石碑
|
||||
Large Monument (Lit)|大きな石碑(光)
|
||||
Large Monument (Lit)|大きな石碑(光)
|
||||
Large Monument (Lit)|大きな石碑(光)
|
||||
Statue A|石像A
|
||||
Angel Statue A|天使像A
|
||||
Angel Statue B|天使像B
|
||||
Dais|台座
|
||||
Statue B|石像B
|
||||
Demon Statue|悪魔像
|
||||
Dragon Statue|竜像
|
||||
Dragon Statue|竜像
|
||||
Statue A|石像A
|
||||
Angel Statue A|天使像A
|
||||
Angel Statue B|天使像B
|
||||
Dais|台座
|
||||
Statue B|石像B
|
||||
Demon Statue|悪魔像
|
||||
Dragon Statue|竜像
|
||||
Dragon Statue|竜像
|
||||
Large Gravel Mound A (Dirt)|大きな土砂A(土)
|
||||
Large Gravel Mound A (Dirt)|大きな土砂A(土)
|
||||
Large Gravel Mound B (Stone)|大きな土砂B(石)
|
||||
Large Gravel Mound B (Stone)|大きな土砂B(石)
|
||||
Large Gold Mound|大きな金の山
|
||||
Large Gold Mound|大きな金の山
|
||||
Large Silver Mound|大きな銀の山
|
||||
Large Silver Mound|大きな銀の山
|
||||
Large Gravel Mound A (Dirt)|大きな土砂A(土)
|
||||
Large Gravel Mound A (Dirt)|大きな土砂A(土)
|
||||
Large Gravel Mound B (Stone)|大きな土砂B(石)
|
||||
Large Gravel Mound B (Stone)|大きな土砂B(石)
|
||||
Large Gold Mound|大きな金の山
|
||||
Large Gold Mound|大きな金の山
|
||||
Large Silver Mound|大きな銀の山
|
||||
Large Silver Mound|大きな銀の山
|
||||
Gravel Mound (Dirt)|土砂A(土)
|
||||
Gravel Mound (Stone)|土砂B(石)
|
||||
Gold Bricks A|金の延べ棒A
|
||||
Gold Bricks B|金の延べ棒B
|
||||
Crate A (Dirt)|木箱A(土)
|
||||
Crate B (Stone)|木箱B(石)
|
||||
Crate C (Ruins)|木箱C(廃墟)
|
||||
Pot A (Ruins)|壺A(廃墟)
|
||||
Gold Mound|金の山
|
||||
Silver Mound|銀の山
|
||||
Silver Bricks A|銀の延べ棒A
|
||||
Silver Bricks B|銀の延べ棒B
|
||||
Crate D (Gold Dust)|木箱D(金)
|
||||
Crate E (Silver Dust)|木箱E(銀)
|
||||
Pot A|壺A
|
||||
Pot B|壺B
|
||||
Shovel|スコップ
|
||||
Pickax|つるはし
|
||||
Rope|ロープ
|
||||
Mound of Gold Coins|金貨の山
|
||||
Crate F|木箱F
|
||||
Crate G|木箱G
|
||||
Barrel A|樽A
|
||||
Barrel B (Ruins)|樽B(廃墟)
|
||||
Large Bones|大きな骸骨
|
||||
Large Bones|大きな骸骨
|
||||
Bones A|骸骨A
|
||||
Table (Ruins)|テーブル(廃墟)
|
||||
Jail Bars|鉄格子
|
||||
Jail Bars|鉄格子
|
||||
Jail Bars|鉄格子
|
||||
Jail Bars|鉄格子
|
||||
Large Bones|大きな骸骨
|
||||
Large Bones|大きな骸骨
|
||||
Bones B|骸骨B
|
||||
Stool (Ruins)|椅子(廃墟)
|
||||
Jail Bars|鉄格子
|
||||
Jail Bars|鉄格子
|
||||
Jail Bars|鉄格子
|
||||
Jail Bars|鉄格子
|
||||
256
www/img/tilesets/Dungeon_C.txt
Normal file
256
www/img/tilesets/Dungeon_C.txt
Normal file
|
|
@ -0,0 +1,256 @@
|
|||
Decorative Pillar A (Stone)|装飾柱A(石)
|
||||
Decorative Pillar B (Stone)|装飾柱B(石)
|
||||
Decorative Pillar C (Temple)|装飾柱C(遺跡)
|
||||
Decorative Pillar D (Rock Cave)|装飾柱D(岩洞窟)
|
||||
Decorative Pillar E (Demon Castle)|装飾柱E(魔王城)
|
||||
Decorative Pillar F (Fort)|装飾柱F(砦)
|
||||
Decorative Pillar G (Dirt Cave)|装飾柱G(土洞窟)
|
||||
Decorative Pillar H (Factory)|装飾柱H(工場)
|
||||
Decorative Pillar A (Stone)|装飾柱A(石)
|
||||
Decorative Pillar B (Stone)|装飾柱B(石)
|
||||
Decorative Pillar C (Temple)|装飾柱C(遺跡)
|
||||
Decorative Pillar D (Rock Cave)|装飾柱D(岩洞窟)
|
||||
Decorative Pillar E (Demon Castle)|装飾柱E(魔王城)
|
||||
Decorative Pillar F (Fort)|装飾柱F(砦)
|
||||
Decorative Pillar G (Dirt Cave)|装飾柱G(土洞窟)
|
||||
Decorative Pillar H (Factory)|装飾柱H(工場)
|
||||
Decorative Pillar A (Stone)|装飾柱A(石)
|
||||
Decorative Pillar B (Stone)|装飾柱B(石)
|
||||
Decorative Pillar C (Temple)|装飾柱C(遺跡)
|
||||
Decorative Pillar D (Rock Cave)|装飾柱D(岩洞窟)
|
||||
Decorative Pillar E (Demon Castle)|装飾柱E(魔王城)
|
||||
Decorative Pillar F (Fort)|装飾柱F(砦)
|
||||
Decorative Pillar G (Dirt Cave)|装飾柱G(土洞窟)
|
||||
Decorative Pillar H (Factory)|装飾柱H(工場)
|
||||
Decorative Pillar A (Stone, Ruins)|装飾柱A(石・廃墟)
|
||||
Decorative Pillar B (Stone, Ruins)|装飾柱B(石・廃墟)
|
||||
Decorative Pillar C (Temple, Ruins)|装飾柱C(遺跡・廃墟)
|
||||
Decorative Pillar D (Rock Cave, Ruins)|装飾柱D(岩洞窟・廃墟)
|
||||
Decorative Pillar E (Demon Castle, Ruins)|装飾柱E(魔王城・廃墟)
|
||||
Decorative Pillar F (Fort, Ruins)|装飾柱F(砦・廃墟)
|
||||
Decorative Pillar G (Dirt Cave, Ruins)|装飾柱G(土洞窟・廃墟)
|
||||
Decorative Pillar A (Stone, Front, Ruins)|装飾柱A(石・手前・廃墟)
|
||||
Decorative Pillar A (Stone, Ruins)|装飾柱A(石・廃墟)
|
||||
Decorative Pillar B (Stone, Ruins)|装飾柱B(石・廃墟)
|
||||
Decorative Pillar C (Temple, Ruins)|装飾柱C(遺跡・廃墟)
|
||||
Decorative Pillar D (Rock Cave, Ruins)|装飾柱D(岩洞窟・廃墟)
|
||||
Decorative Pillar E (Demon Castle, Ruins)|装飾柱E(魔王城・廃墟)
|
||||
Decorative Pillar F (Fort, Ruins)|装飾柱F(砦・廃墟)
|
||||
Decorative Pillar G (Dirt Cave, Ruins)|装飾柱G(土洞窟・廃墟)
|
||||
Decorative Pillar D (Rock Cave, Front, Ruins)|装飾柱F(岩洞窟・手前・廃墟)
|
||||
Decorative Pillar A (Stone, Ruins)|装飾柱A(石・廃墟)
|
||||
Decorative Pillar B (Stone, Ruins)|装飾柱B(石・廃墟)
|
||||
Decorative Pillar C (Temple, Ruins)|装飾柱C(遺跡・廃墟)
|
||||
Decorative Pillar D (Rock Cave, Ruins)|装飾柱D(岩洞窟・廃墟)
|
||||
Decorative Pillar E (Demon Castle, Ruins)|装飾柱E(魔王城・廃墟)
|
||||
Decorative Pillar F (Fort, Ruins)|装飾柱F(砦・廃墟)
|
||||
Decorative Pillar G (Dirt Cave, Ruins)|装飾柱G(土洞窟・廃墟)
|
||||
Decorative Pillar F (Fort, Front, Ruins)|装飾柱F(砦・手前・廃墟)
|
||||
Decorative Pillar A (Stone, Front)|装飾柱A(石・手前)
|
||||
Decorative Pillar B (Stone, Front)|装飾柱B(石・手前)
|
||||
Decorative Pillar C (Temple, Front)|装飾柱C(神殿・手前)
|
||||
Decorative Pillar D (Rock Cave, Front)|装飾柱D(岩洞窟・手前)
|
||||
Decorative Pillar E (Demon Castle, Front)|装飾柱E(魔王城・手前)
|
||||
Decorative Pillar F (Fort, Front)|装飾柱F(砦・手前)
|
||||
Decorative Pillar G (Dirt Cave, Front)|装飾柱G(土洞窟・手前)
|
||||
Decorative Pillar H (Factory, Front)|装飾柱H(工場・手前)
|
||||
Gate A|門A
|
||||
Gate A|門A
|
||||
Gate A|門A
|
||||
Gate B|門B
|
||||
Gate B|門B
|
||||
Gate B|門B
|
||||
Decorative Pillar I (Demonic)|装飾柱I(悪魔)
|
||||
Decorative Pillar I (Demonic, Ruins)|装飾柱I(悪魔・廃墟)
|
||||
Gate A|門A
|
||||
Gate A|門A
|
||||
Gate A|門A
|
||||
Gate B|門B
|
||||
Gate B|門B
|
||||
Gate B|門B
|
||||
Decorative Pillar I (Demonic)|装飾柱I(悪魔)
|
||||
Decorative Pillar I (Demonic, Ruins)|装飾柱I(悪魔・廃墟)
|
||||
Gate A|門A
|
||||
Gate A|門A
|
||||
Gate A|門A
|
||||
Gate B|門B
|
||||
Gate B|門B
|
||||
Gate B|門B
|
||||
Coffin A (Right)|棺A(右)
|
||||
Coffin A (Right)|棺A(右)
|
||||
Hexagram|魔法陣
|
||||
Hexagram|魔法陣
|
||||
Hexagram|魔法陣
|
||||
Hexagram (Lit)|魔法陣(光)
|
||||
Hexagram (Lit)|魔法陣(光)
|
||||
Hexagram (Lit)|魔法陣(光)
|
||||
Coffin B (Top)|棺B(上)
|
||||
Coffin C (Bottom)|棺C(下)
|
||||
Hexagram|魔法陣
|
||||
Hexagram|魔法陣
|
||||
Hexagram|魔法陣
|
||||
Hexagram (Lit)|魔法陣(光)
|
||||
Hexagram (Lit)|魔法陣(光)
|
||||
Hexagram (Lit)|魔法陣(光)
|
||||
Coffin B (Top)|棺B(上)
|
||||
Coffin C (Bottom)|棺C(下)
|
||||
Hexagram|魔法陣
|
||||
Hexagram|魔法陣
|
||||
Hexagram|魔法陣
|
||||
Hexagram (Lit)|魔法陣(光)
|
||||
Hexagram (Lit)|魔法陣(光)
|
||||
Hexagram (Lit)|魔法陣(光)
|
||||
Coffin D (Left)|棺D(左)
|
||||
Coffin D (Left)|棺D(左)
|
||||
Rails|線路
|
||||
Rails|線路
|
||||
Rails|線路
|
||||
Rails|線路
|
||||
Rails (Ruins)|線路(廃墟)
|
||||
Rails (Ruins)|線路(廃墟)
|
||||
Rails (Ruins)|線路(廃墟)
|
||||
Rails (Ruins)|線路(廃墟)
|
||||
Rails|線路
|
||||
Railroad Ties A|枕木A
|
||||
Rails|線路
|
||||
Rails|線路
|
||||
Rails|線路
|
||||
Rails|線路
|
||||
Rails|線路
|
||||
Rails|線路
|
||||
Rails|線路
|
||||
Railroad Ties B|枕木B
|
||||
Rails|線路
|
||||
Rails|線路
|
||||
Rails|線路
|
||||
Rails|線路
|
||||
Rails|線路
|
||||
Rails|線路
|
||||
Mural A|壁画A
|
||||
Hieroglyph|ヒエログリフ
|
||||
Hieroglyph|ヒエログリフ
|
||||
Large Mural A|大きな壁画A
|
||||
Large Mural A|大きな壁画A
|
||||
Large Mural A|大きな壁画A
|
||||
Bed|ベッド
|
||||
Bed (Ruins)|ベッド(廃墟)
|
||||
Mural B|壁画B
|
||||
Hieroglyph|ヒエログリフ
|
||||
Hieroglyph|ヒエログリフ
|
||||
Large Mural B|大きな壁画B
|
||||
Large Mural B|大きな壁画B
|
||||
Large Mural B|大きな壁画B
|
||||
Bed|ベッド
|
||||
Bed (Ruins)|ベッド(廃墟)
|
||||
Middle Window A|中型窓A
|
||||
Middle Window B|中型窓B
|
||||
Middle Window C|中型窓C
|
||||
Middle Window D (Ruins)|中型窓窓D(廃墟)
|
||||
Window (Demon Castle)|窓(魔王城)
|
||||
Table|テーブル
|
||||
Cheap Bed|粗末なベッド
|
||||
Straw Bed|むしろの寝床
|
||||
Middle Window A|中型窓A
|
||||
Middle Window B|中型窓B
|
||||
Middle Window C|中型窓C
|
||||
Middle Window D (Ruins)|中型窓窓D(廃墟)
|
||||
Window (Demon Castle)|窓(魔王城)
|
||||
Stool|椅子
|
||||
Cheap Bed|粗末なベッド
|
||||
Straw Bed|むしろの寝床
|
||||
Large Window A|大型窓A
|
||||
Large Window B|大型窓B
|
||||
Large Window C|大型窓C
|
||||
Stained Glass Window|ステンドグラス
|
||||
Large Window D|大型窓D
|
||||
Window A|窓A
|
||||
Window B|窓B
|
||||
Window C|窓C
|
||||
Large Window A|大型窓A
|
||||
Large Window B|大型窓B
|
||||
Large Window C|大型窓C
|
||||
Stained Glass Window|ステンドグラス
|
||||
Large Window D|大型窓D
|
||||
Window A|窓A
|
||||
Window B|窓B
|
||||
Window C|窓C
|
||||
Chest A|チェストA
|
||||
Cabinet|キャビネット
|
||||
Closet|クローゼット
|
||||
Chest of Drawers|タンス
|
||||
Dish Cabinet|食器棚
|
||||
Wine Rack|ワインセラー
|
||||
Bottle Shelf A|ボトル棚A
|
||||
Bottle Shelf B|ボトル棚B
|
||||
Chest B|チェストB
|
||||
Chest C|チェストC
|
||||
Closet|クローゼット
|
||||
Chest of Drawers|タンス
|
||||
Dish Cabinet|食器棚
|
||||
Wine Rack|ワインセラー
|
||||
Bottle Shelf A|ボトル棚A
|
||||
Bottle Shelf B|ボトル棚B
|
||||
Tipped Shelf|倒れた棚
|
||||
Sundries Shelf A|雑貨棚A
|
||||
Sundries Shelf A|雑貨棚A
|
||||
Sundries Shelf B|雑貨棚B
|
||||
Medicine Shelf|薬品棚
|
||||
Bookshelf A|本棚A
|
||||
Bookshelf B|本棚B
|
||||
Bookshelf B|本棚B
|
||||
Tipped Shelf|倒れた棚
|
||||
Sundries Shelf A|雑貨棚A
|
||||
Sundries Shelf A|雑貨棚A
|
||||
Sundries Shelf B|雑貨棚B
|
||||
Medicine Shelf|薬品棚
|
||||
Bookshelf A|本棚A
|
||||
Bookshelf B|本棚B
|
||||
Bookshelf B|本棚B
|
||||
Curtains A|カーテンA
|
||||
Curtains B|カーテンB
|
||||
Curtains C|カーテンC
|
||||
Curtains D|カーテンD
|
||||
Curtains A (Ruins)|カーテンA(廃墟)
|
||||
Curtains B (Ruins)|カーテンB(廃墟)
|
||||
Curtains C (Ruins)|カーテンC(廃墟)
|
||||
Curtains D (Ruins)|カーテンD(廃墟)
|
||||
Curtains A|カーテンA
|
||||
Curtains B|カーテンB
|
||||
Curtains C|カーテンC
|
||||
Curtains D|カーテンD
|
||||
Curtains A (Ruins)|カーテンA(廃墟)
|
||||
Curtains B (Ruins)|カーテンB(廃墟)
|
||||
Curtains C (Ruins)|カーテンC(廃墟)
|
||||
Curtains D (Ruins)|カーテンD(廃墟)
|
||||
Clock|時計
|
||||
Mirror|鏡
|
||||
Clock (Ruins)|時計(廃墟)
|
||||
Mirror (Ruins)|鏡(廃墟)
|
||||
Stacked Crates|積まれた木箱
|
||||
Stacked Crates|積まれた木箱
|
||||
Tapestry A|タペストリーA
|
||||
Tapestry A (Ruins)|タペストリーA(廃墟)
|
||||
Clock|時計
|
||||
Mirror|鏡
|
||||
Clock (Ruins)|時計(廃墟)
|
||||
Mirror (Ruins)|鏡(廃墟)
|
||||
Stacked Crates|積まれた木箱
|
||||
Stacked Crates|積まれた木箱
|
||||
Tapestry A|タペストリーA
|
||||
Tapestry A (Ruins)|タペストリーA(廃墟)
|
||||
Chair A (Wood)|背もたれ椅子A(木製)
|
||||
Chair B (Stone)|背もたれ椅子B(石)
|
||||
Throne A|玉座A
|
||||
Throne A|玉座A
|
||||
Throne A|玉座A
|
||||
Throne B (Demon Castle)|玉座B(魔王城)
|
||||
Throne B (Demon Castle)|玉座B(魔王城)
|
||||
Throne B (Demon Castle)|玉座B(魔王城)
|
||||
Chair A (Wood)|背もたれ椅子A(木製)
|
||||
Chair B (Stone)|背もたれ椅子B(石)
|
||||
Throne A|玉座A
|
||||
Throne A|玉座A
|
||||
Throne A|玉座A
|
||||
Throne B (Demon Castle)|玉座B(魔王城)
|
||||
Throne B (Demon Castle)|玉座B(魔王城)
|
||||
Throne B (Demon Castle)|玉座B(魔王城)
|
||||
16
www/img/tilesets/Inside_A1.txt
Normal file
16
www/img/tilesets/Inside_A1.txt
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
Canal A|水路A
|
||||
Deep Canal|深い水路
|
||||
Lotus Pads (Flowers)|蓮の葉(花)
|
||||
Junk|ゴミ
|
||||
Pool A (Stone Lined)|水場A(石の縁)
|
||||
Waterfall A (Stone Wall)|滝A(石壁)
|
||||
Pool B (Wood Lined)|水場B(木の縁)
|
||||
Waterfall B (Stone Wall)|滝B(石壁)
|
||||
Canal B|水路B
|
||||
Waterfall C (Stone Wall)|滝C(石壁)
|
||||
Pool C (Stone Lined)|水場C(石の縁)
|
||||
Waterfall D (Stone Wall)|滝D(石壁)
|
||||
Bathing Spot|水浴び場
|
||||
Waterfall E (Dirt Wall)|滝E(土壁)
|
||||
Open Bath|露天風呂
|
||||
Waterfall F (Demon Castle)|滝F(魔王城)
|
||||
32
www/img/tilesets/Inside_A2.txt
Normal file
32
www/img/tilesets/Inside_A2.txt
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
Wood Floor A|木の床A
|
||||
Cobblestones A|石畳A
|
||||
Rug A|じゅうたんA
|
||||
Straw Mat|ござ
|
||||
Hole A (Wood Floor)|穴A(木の床)
|
||||
Raised Stone A|石段A
|
||||
Ground Cracks|床のひび割れ
|
||||
Table A|テーブルA
|
||||
Wood Floor B|木の床B
|
||||
Cobblestones B|石畳B
|
||||
Rug B|じゅうたんB
|
||||
Rug C|じゅうたんC
|
||||
Hole B (Wood Floor)|穴B(木の床)
|
||||
Raised Stone B|石段B
|
||||
Soil on Ground|床の汚れ
|
||||
Table B|テーブルB
|
||||
Cobblestones C|石畳C
|
||||
Cobblestones D|石畳D
|
||||
Rug D|じゅうたんD
|
||||
Demon Castle Floor|魔王城の床
|
||||
Hole C (Stone Floor)|穴C(石の床)
|
||||
Raised Stone C|石段C
|
||||
Moss on Ground|床の苔
|
||||
Table C|テーブルC
|
||||
Cobblestones E|石畳E
|
||||
Cobblestones F|石畳F
|
||||
Rug E|じゅうたんE
|
||||
Rug F|じゅうたんF
|
||||
Hole D|穴D
|
||||
Raised Stone D|石段D
|
||||
Wire mesh|金網
|
||||
Table D|テーブルD
|
||||
48
www/img/tilesets/Inside_A4.txt
Normal file
48
www/img/tilesets/Inside_A4.txt
Normal file
|
|
@ -0,0 +1,48 @@
|
|||
Wall A (Stone)|壁A(石)
|
||||
Wall B (Brick)|壁B(レンガ)
|
||||
Wall C (Brick)|壁C(レンガ)
|
||||
Wall D (Stone)|壁D(石)
|
||||
Wall E (Stone)|壁E(石)
|
||||
Wall F (Castle)|壁F(城)
|
||||
Wall G (Fort)|壁G(砦)
|
||||
Wall H (Demon Castle)|壁H(魔王城)
|
||||
Wall A (Stone)|壁A(石)
|
||||
Wall B (Brick)|壁B(レンガ)
|
||||
Wall C (Brick)|壁C(レンガ)
|
||||
Wall D (Stone)|壁D(石)
|
||||
Wall E (Stone)|壁E(石)
|
||||
Wall F (Castle)|壁F(城)
|
||||
Wall G (Fort)|壁G(砦)
|
||||
Wall H (Demon Castle)|壁H(魔王城)
|
||||
Wall I (Wood)|壁I(木造)
|
||||
Wall J (Log)|壁J(丸太)
|
||||
Wall K (Wood)|壁K(木造)
|
||||
Interior Wall A (Wood)|内装壁A(木造)
|
||||
Interior Wall (Stone)|内装壁B(石)
|
||||
Wall L (Stone)|壁L(石)
|
||||
Wall M (Marble)|壁M(大理石)
|
||||
Wall N (Concrete)|壁N(コンクリート)
|
||||
Wall I (Wood)|壁I(木造)
|
||||
Wall J (Log)|壁J(丸太)
|
||||
Wall K (Wood)|壁K(木造)
|
||||
Interior Wall A (Wood)|内装壁A(木造)
|
||||
Interior Wall (Stone)|内装壁B(石)
|
||||
Wall L (Stone)|壁L(石)
|
||||
Wall M (Marble)|壁M(大理石)
|
||||
Wall N (Concrete)|壁N(コンクリート)
|
||||
Interior Wall C (Stone)|内装壁C(石)
|
||||
Interior Wall D (Brick)|内装壁D(レンガ)
|
||||
Interior Wall E (Stone)|内装壁E(石)
|
||||
Interior Wall F (Desert)|内装壁F(砂漠風)
|
||||
Interior Wall G (Mansion)|内装壁G(豪邸)
|
||||
Interior Wall H (Temple)|内装壁H(神殿)
|
||||
Wall O (Tent)|壁O(テント)
|
||||
Wall P (Stage)|壁P(舞台)
|
||||
Interior Wall C (Stone)|内装壁C(石)
|
||||
Interior Wall D (Brick)|内装壁D(レンガ)
|
||||
Interior Wall E (Stone)|内装壁E(石)
|
||||
Interior Wall F (Desert)|内装壁F(砂漠風)
|
||||
Interior Wall G (Mansion)|内装壁G(豪邸)
|
||||
Interior Wall H (Temple)|内装壁H(神殿)
|
||||
Wall O (Tent)|壁O(テント)
|
||||
Wall P (Stage)|壁P(舞台)
|
||||
129
www/img/tilesets/Inside_A5.txt
Normal file
129
www/img/tilesets/Inside_A5.txt
Normal file
|
|
@ -0,0 +1,129 @@
|
|||
Darkness|暗闇
|
||||
Wire Mesh|金網
|
||||
Stone Bridge (V, Left)|石の橋(縦・左)
|
||||
Stone Bridge (V Center)|石の橋(縦・中央)
|
||||
Stone Bridge (V, Riight)|石の橋(縦・右)
|
||||
Stone Bridge (H, Top)|石の橋(横・上)
|
||||
Stone Bridge (H Center)|石の橋(横・中央)
|
||||
Broken Bridge (H, Top)|壊れた橋(横・上)
|
||||
Transparent|透明
|
||||
Wire Mesh|金網
|
||||
Broken Bridge (V, Left)|壊れた橋(縦・左)
|
||||
Broken Bridge (V Center)|壊れた橋(縦・中央)
|
||||
Broken Bridge (V, Riight)|壊れた橋(縦・右)
|
||||
Stone Bridge (H, Bottom)|石の橋(横・下)
|
||||
Broken Bridge (H Center)|壊れた橋(横・中央)
|
||||
Broken Bridge (H, Bottom)|壊れた橋(横・下)
|
||||
Wood Floor A|木の床A
|
||||
Wood Floor B|木の床B
|
||||
Wood Floor C|木の床C
|
||||
Wood Floor D|木の床D
|
||||
Cobblestones A|石畳A
|
||||
Cobblestones B|石畳B
|
||||
Cobblestones C|石畳C
|
||||
Cobblestones D|石畳D
|
||||
Ledge A (Wood)|段差A(木製)
|
||||
Ledge B (Wood)|段差B(木製)
|
||||
Ledge C (Log)|段差C(丸太)
|
||||
Ledge D (Log)|段差D(丸太)
|
||||
Ledge E (Brick)|段差E(レンガ)
|
||||
Ledge F (Stone)|段差F(石)
|
||||
Ledge G (Stone)|段差G(石)
|
||||
Ledge H (Stone)|段差H(石)
|
||||
Cobblestones E|石畳E
|
||||
Cobblestones F|石畳F
|
||||
Wood Floor E|木の床E
|
||||
Wood Floor F|木の床F
|
||||
Cobblestones G|石畳G
|
||||
Cobblestones H|石畳H
|
||||
Cobblestones I|石畳I
|
||||
Cobblestones J|石畳J
|
||||
Ledge I (Brick)|段差I(レンガ)
|
||||
Ledge J (Castle)|段差J(城)
|
||||
Ledge K (Fort)|段差K(砦)
|
||||
Ledge L (Wood)|段差L(木製)
|
||||
Ledge M (Stone)|段差M(石)
|
||||
Ledge N (Stone)|段差N(石)
|
||||
Ledge O (Marble)|段差O(大理石)
|
||||
Ledge P (Stone)|段差P(石)
|
||||
Interior Floor A (Wood)|内装床A(木製)
|
||||
Interior Floor B (Brick)|内装床B(レンガ)
|
||||
Interior Floor C (Temple)|内装床C(神殿)
|
||||
Interior Floor D (Stone)|内装床D(石)
|
||||
Interior Floor E (Demon Castle)|内装床E(魔王城)
|
||||
Interior Floor F (Tent)|内装床F(テント)
|
||||
Interior Floor G (Concrete)|内装床G(コンクリート)
|
||||
Interior Floor H (Dirt)|内装床H(土)
|
||||
Ledge Q (Wood)|段差Q(木製)
|
||||
Ledge R (Desert)|段差R(砂漠風)
|
||||
Ledge S (Temple)|段差S(神殿)
|
||||
Ledge T (Stone)|段差T(石)
|
||||
Ledge U (Demon Castle)|段差U(魔界城)
|
||||
Ledge V (Tent)|段差V(テント)
|
||||
Ledge W (Concrete)|段差W(コンクリート)
|
||||
Ledge X (Dirt)|段差X(土)
|
||||
Stairs A (Wood, Left)|階段A(木製・左)
|
||||
Stairs A (Wood, Center)|階段A(木製・中央)
|
||||
Stairs A (Wood)|階段A(木製・右)
|
||||
Stairs A (Wood)|階段A(木製)
|
||||
Stairs B (Stone, Left)|階段B(石・左)
|
||||
Stairs B (Stone, Center)|階段B(石・中央)
|
||||
Stairs B (Stone, Right)|階段B(石・右)
|
||||
Stairs B (Stone)|階段B(石)
|
||||
Stairs C (Stone, Left)|階段C(石・左)
|
||||
Stairs C (Stone, Center)|階段C(石・中央)
|
||||
Stairs C (Stone, Right)|階段C(石・右)
|
||||
Stairs C (Stone)|階段C(石)
|
||||
Stairs C (Stone, Ruins, Left)|階段C(石・廃墟・左)
|
||||
Stairs C (Stone, Ruins, Center)|階段C(石・廃墟・中央)
|
||||
Stairs C (Stone, Ruins, Right)|階段C(石・廃墟・右)
|
||||
Stairs C (Stone, Ruins)|階段C(石・廃墟)
|
||||
Stairs D (Carpet, Left)|階段D(じゅうたん・左)
|
||||
Stairs D (Carpet, Center)|階段D(じゅうたん・中央)
|
||||
Stairs D (Carpet, Right)|階段D(じゅうたん・右)
|
||||
Stairs D (Carpet)|階段D(じゅうたん)
|
||||
Stairs E (Carpet, Left)|階段E(じゅうたん・左)
|
||||
Stairs E (Carpet, Center)|階段E(じゅうたん・中央)
|
||||
Stairs E (Carpet, Right)|階段E(じゅうたん・右)
|
||||
Stairs E (Carpet)|階段E(じゅうたん)
|
||||
Wood Floor A (Ruins)|木の床A(廃墟)
|
||||
Wood Floor B (Ruins)|木の床B(廃墟)
|
||||
Wood Floor C (Ruins)|木の床C(廃墟)
|
||||
Wood Floor D (Ruins)|木の床D(廃墟)
|
||||
Cobblestones A (Ruins)|石畳A(廃墟)
|
||||
Cobblestones B (Ruins)|石畳B(廃墟)
|
||||
Cobblestones C (Ruins)|石畳C(廃墟)
|
||||
Cobblestones D (Ruins)|石畳D(廃墟)
|
||||
Cobblestones E (Ruins)|石畳E(廃墟)
|
||||
Cobblestones F (Ruins)|石畳F(廃墟)
|
||||
Wood Floor E (Ruins)|木の床E(廃墟)
|
||||
Wood Floor F (Ruins)|木の床F(廃墟)
|
||||
Cobblestones G (Ruins)|石畳G(廃墟)
|
||||
Cobblestones H (Ruins)|石畳H(廃墟)
|
||||
Cobblestones I (Ruins)|石畳I(廃墟)
|
||||
Cobblestones J (Ruins)|石畳J(廃墟)
|
||||
Interior Floor A (Wood, Ruins)|内装床A(木製・廃墟)
|
||||
Interior Floor B (Brick, Ruins)|内装床B(レンガ・廃墟)
|
||||
Interior Floor C (Temple, Ruins)|内装床C(神殿・廃墟)
|
||||
Interior Floor D (Stone, Ruins)|内装床D(石・廃墟)
|
||||
Interior Floor E (Demon Castle, Ruins)|内装床E(魔王城・廃墟)
|
||||
Interior Floor F (Concrete, Ruins)|内装床F(コンクリート・廃墟)
|
||||
Interior Floor G (Tent, Ruins)|内装床G(テント・廃墟)
|
||||
Interior Floor H (Dirt, Ruins)|内装床H(土・廃墟)
|
||||
Large Relief Floor Tile A|大きなレリーフ床A
|
||||
Large Relief Floor Tile A|大きなレリーフ床A
|
||||
Large Relief Floor Tile B|大きなレリーフ床B
|
||||
Large Relief Floor Tile B|大きなレリーフ床B
|
||||
Relief Floor Tile A (Silver)|レリーフ床A(銀)
|
||||
Relief Floor Tile B (Silver)|レリーフ床B(銀)
|
||||
Relief Floor Tile C (Gold)|レリーフ床C(金)
|
||||
Relief Floor Tile D (Gold)|レリーフ床D(金)
|
||||
Large Relief Floor Tile A|大きなレリーフ床A
|
||||
Large Relief Floor Tile A|大きなレリーフ床A
|
||||
Large Relief Floor Tile B|大きなレリーフ床B
|
||||
Large Relief Floor Tile B|大きなレリーフ床B
|
||||
Relief Floor Tile E (Silver, Ruins)|レリーフ床E(銀・廃墟)
|
||||
Relief Floor Tile F (Silver)|レリーフ床F(銀)
|
||||
Relief Floor Tile G (Gold, Ruins)|レリーフ床G(金・廃墟)
|
||||
Relief Floor Tile H (Gold)|レリーフ床H(金)
|
||||
|
||||
256
www/img/tilesets/Inside_B.txt
Normal file
256
www/img/tilesets/Inside_B.txt
Normal file
|
|
@ -0,0 +1,256 @@
|
|||
Transparent|透明
|
||||
Stairs A (Up)|階段A(上り)
|
||||
Stairs B (Up)|階段B(上り)
|
||||
Stairs C (Up)|階段C(上り)
|
||||
Stairs D (Up)|階段D(上り)
|
||||
Metal Ladder|鉄ばしご
|
||||
Rope Ladder|縄ばしご
|
||||
Rope|ロープ
|
||||
Hole|穴
|
||||
Stairs A (Down)|階段A(下り)
|
||||
Stairs B (Down)|階段B(下り)
|
||||
Stairs C (Down)|階段C(下り)
|
||||
Stairs D (Down)|階段D(下り)
|
||||
Metal Ladder|鉄ばしご
|
||||
Rope Ladder|縄ばしご
|
||||
Rope|ロープ
|
||||
Middle Window A|中型窓A
|
||||
Middle Window B|中型窓B
|
||||
Middle Window C|中型窓C
|
||||
Middle Window D (Ruins)|中型窓D(廃墟)
|
||||
Window (Demon Castle)|窓(魔王城)
|
||||
Metal Ladder|鉄ばしご
|
||||
Rope Ladder|縄ばしご
|
||||
Rope|ロープ
|
||||
Middle Window A|中型窓A
|
||||
Middle Window B|中型窓B
|
||||
Middle Window C|中型窓C
|
||||
Middle Window D (Ruins)|中型窓D(廃墟)
|
||||
Window (Demon Castle)|窓(魔王城)
|
||||
Hole A (Metal Ladder)|穴A(鉄ばしご)
|
||||
Hole B (Rope Ladder)|穴B(縄ばしご)
|
||||
Hole C (Rope)|穴C(ロープ)
|
||||
Large Window A|大型窓A
|
||||
Large Window B|大型窓B
|
||||
Large Window C|大型窓C
|
||||
Stained Glass Window|ステンドグラス
|
||||
Large Window D|大型窓D
|
||||
Window A|窓A
|
||||
Window B|窓B
|
||||
Window C|窓C
|
||||
Large Window A|大型窓A
|
||||
Large Window B|大型窓B
|
||||
Large Window C|大型窓C
|
||||
Stained Glass Window|ステンドグラス
|
||||
Large Window D|大型窓D
|
||||
Window A|窓A
|
||||
Window B|窓B
|
||||
Window C|窓C
|
||||
Chest A|チェストA
|
||||
Cabinet|キャビネット
|
||||
Closet|クローゼット
|
||||
Chest of Drawers|タンス
|
||||
Dish Cabinet|食器棚
|
||||
Wine Rack|ワインセラー
|
||||
Bottle Shelf A|ボトル棚A
|
||||
Bottle Shelf B|ボトル棚B
|
||||
Chest B|チェストB
|
||||
Chest C|チェストC
|
||||
Closet|クローゼット
|
||||
Chest of Drawers|タンス
|
||||
Dish Cabinet|食器棚
|
||||
Wine Rack|ワインセラー
|
||||
Bottle Shelf A|ボトル棚A
|
||||
Bottle Shelf B|ボトル棚B
|
||||
Bread Shelf|パン棚
|
||||
Sundries Shelf A|雑貨棚A
|
||||
Sundries Shelf A|雑貨棚A
|
||||
Sundries Shelf B|雑貨棚B
|
||||
Medicine Shelf|薬品棚
|
||||
Bookshelf A|本棚A
|
||||
Bookshelf B|本棚B
|
||||
Bookshelf B|本棚B
|
||||
Bread Shelf|パン棚
|
||||
Sundries Shelf A|雑貨棚A
|
||||
Sundries Shelf A|雑貨棚A
|
||||
Sundries Shelf B|雑貨棚B
|
||||
Medicine Shelf|薬品棚
|
||||
Bookshelf A|本棚A
|
||||
Bookshelf B|本棚B
|
||||
Bookshelf B|本棚B
|
||||
Bed|ベッド
|
||||
Large Bed|ダブルベッド
|
||||
Large Bed|ダブルベッド
|
||||
Cheap Bed A|粗末なベッドA
|
||||
Cheap Bed B|粗末なベッドB
|
||||
Straw Bed|むしろの寝床
|
||||
Bed (Ruins)|ベッド(廃墟)
|
||||
Tipped Shelf|倒れた棚
|
||||
Bed|ベッド
|
||||
Large Bed|ダブルベッド
|
||||
Large Bed|ダブルベッド
|
||||
Cheap Bed A|粗末なベッドA
|
||||
Cheap Bed B|粗末なベッドB
|
||||
Straw Bed|むしろの寝床
|
||||
Bed (Ruins)|ベッド(廃墟)
|
||||
Tipped Shelf|倒れた棚
|
||||
Table A|テーブルA
|
||||
Table B|テーブルB
|
||||
Table C|テーブルC
|
||||
Fortuneteller's Table A|占い台A
|
||||
Mini Table A|ミニテーブルA
|
||||
Piano|ピアノ
|
||||
Piano|ピアノ
|
||||
Piano|ピアノ
|
||||
Stool A|椅子A
|
||||
Stool B|椅子B
|
||||
Stool C|椅子C
|
||||
Fortuneteller's Table B (Crystal)|占い台B(水晶)
|
||||
Mini Table B (Flower)|ミニテーブルB(花瓶)
|
||||
Piano|ピアノ
|
||||
Piano|ピアノ
|
||||
Piano|ピアノ
|
||||
Oven|かまど
|
||||
Sink|流し
|
||||
Kitchen Counter A|調理台A
|
||||
Kitchen Counter B|調理台B
|
||||
Dresser|ドレッサー
|
||||
Pipe Organ|パイプオルガン
|
||||
Pipe Organ|パイプオルガン
|
||||
Pipe Organ|パイプオルガン
|
||||
Simple Shelf A|簡易棚A
|
||||
Simple Shelf B (Jars)|簡易棚B(瓶)
|
||||
Simple Shelf C (Books)|簡易棚C(本)
|
||||
Simple Shelf D (Sacks)|簡易棚D(袋)
|
||||
Simple Shelf E (Bottles)|簡易棚E(ボトル)
|
||||
Pipe Organ|パイプオルガン
|
||||
Pipe Organ|パイプオルガン
|
||||
Pipe Organ|パイプオルガン
|
||||
Large Fireplace|大きな暖炉
|
||||
Large Fireplace|大きな暖炉
|
||||
Large Fireplace|大きな暖炉
|
||||
Fireplace A (Stone)|暖炉A(石)
|
||||
Fireplace B (Brick)|暖炉B(レンガ)
|
||||
Fireplace C (Iron)|暖炉C(鉄)
|
||||
Tapestry A|タペストリーA
|
||||
Tapestry A (Ruins)|タペストリーA(廃墟)
|
||||
Large Fireplace|大きな暖炉
|
||||
Large Fireplace|大きな暖炉
|
||||
Large Fireplace|大きな暖炉
|
||||
Fireplace A (Stone)|暖炉A(石)
|
||||
Fireplace B (Brick)|暖炉B(レンガ)
|
||||
Fireplace C (Iron)|暖炉C(鉄)
|
||||
Tapestry A|タペストリーA
|
||||
Tapestry A (Ruins)|タペストリーA(廃墟)
|
||||
Curtains A|カーテンA
|
||||
Curtains B|カーテンB
|
||||
Curtains C|カーテンC
|
||||
Curtains D|カーテンD
|
||||
Curtains A (Ruins)|カーテンA(廃墟)
|
||||
Curtains B (Ruins)|カーテンB(廃墟)
|
||||
Curtains C (Ruins)|カーテンC(廃墟)
|
||||
Curtains D (Ruins)|カーテンD(廃墟)
|
||||
Curtains A|カーテンA
|
||||
Curtains B|カーテンB
|
||||
Curtains C|カーテンC
|
||||
Curtains D|カーテンD
|
||||
Curtains A (Ruins)|カーテンA(廃墟)
|
||||
Curtains B (Ruins)|カーテンB(廃墟)
|
||||
Curtains C (Ruins)|カーテンC(廃墟)
|
||||
Curtains D (Ruins)|カーテンD(廃墟)
|
||||
Clock|時計
|
||||
Mirror|鏡
|
||||
Posted Notice|貼り紙
|
||||
Posted Notice (Ruins)|貼り紙(廃墟)
|
||||
World Map|世界地図
|
||||
World Map|世界地図
|
||||
Painting|絵画
|
||||
Painting|絵画
|
||||
Clock|時計
|
||||
Mirror|鏡
|
||||
Stone Tablet|石版
|
||||
Stone Tablet (Ruins)|石版(廃墟)
|
||||
Portrait A|肖像画A
|
||||
Portrait B|肖像画B
|
||||
Painting A|絵画A
|
||||
Painting B|絵画B
|
||||
Chair A (Wood)|背もたれ椅子A(木製)
|
||||
Chair B (Stone)|背もたれ椅子B(石)
|
||||
Throne A|玉座A
|
||||
Throne A|玉座A
|
||||
Throne A|玉座A
|
||||
Throne B (Demon Castle)|玉座B(魔王城)
|
||||
Throne B (Demon Castle)|玉座B(魔王城)
|
||||
Throne B (Demon Castle)|玉座B(魔王城)
|
||||
Chair A (Wood)|背もたれ椅子A(木製)
|
||||
Chair B (Stone)|背もたれ椅子B(石)
|
||||
Throne A|玉座A
|
||||
Throne A|玉座A
|
||||
Throne A|玉座A
|
||||
Throne B (Demon Castle)|玉座B(魔王城)
|
||||
Throne B (Demon Castle)|玉座B(魔王城)
|
||||
Throne B (Demon Castle)|玉座B(魔王城)
|
||||
Shield|盾
|
||||
Swords A|剣A
|
||||
Swords B|剣B
|
||||
Entrance A|入口A
|
||||
Entrance A (Extend)|入口A(延長部分)
|
||||
Entrance A (Top Half A)|入口A(上半分A)S
|
||||
Entrance B|入口B
|
||||
Entrance A (Top Half B)|入口A(上半分B)
|
||||
Pot A|壺A
|
||||
Pot B|壺B
|
||||
Pot C (Ruins)|壺C(廃墟)
|
||||
Table A (Ruins)|テーブルA(廃墟)
|
||||
Stone Pillar A|石の柱A
|
||||
Stone Pillar B|石の柱B
|
||||
Fort Pillar|砦の柱
|
||||
Rubble|瓦礫
|
||||
Basin|桶
|
||||
Barrel |樽
|
||||
Barrel (Ruins)|樽(廃墟)
|
||||
Stool (Ruins)|椅子(廃墟)
|
||||
Stone Pillar A|石の柱A
|
||||
Stone Pillar B|石の柱B
|
||||
Fort Pillar|砦の柱
|
||||
Rubble|瓦礫
|
||||
Basin|桶
|
||||
Tub A|たらいA
|
||||
Tub B|たらいB
|
||||
Crate A (Ruins)|木箱A(廃墟)
|
||||
Broken Stone Pillar A|折れた石の柱A
|
||||
Broken Stone Pillar B|折れた石の柱B
|
||||
Broken Fort Pillar|折れた砦の柱
|
||||
Scrap Wood|端材
|
||||
Crate B|木箱B
|
||||
Crate C|木箱C
|
||||
Stacked Crates|積まれた木箱
|
||||
Stacked Crates|積まれた木箱
|
||||
Fissures A|亀裂A
|
||||
Fissures B|亀裂B
|
||||
Fissures C|亀裂C
|
||||
Fissures D|亀裂D
|
||||
Crate D|木箱D
|
||||
Crate E|木箱E
|
||||
Stacked Crates|積まれた木箱
|
||||
Stacked Crates|積まれた木箱
|
||||
Fissures A|亀裂A
|
||||
Fissures B|亀裂B
|
||||
Fissures C|亀裂C
|
||||
Fissures D|亀裂D
|
||||
Crate F|木箱F
|
||||
Crate G|木箱G
|
||||
Sacks C|麻袋C
|
||||
Large Crate|大きな木箱
|
||||
Jail Bar|鉄格子
|
||||
Jail Bar|鉄格子
|
||||
Jail Bar|鉄格子
|
||||
Jail Bar|鉄格子
|
||||
Sack A|麻袋A
|
||||
Sack B|麻袋B
|
||||
Sacks C|麻袋C
|
||||
Large Crate|大きな木箱
|
||||
Jail Bar|鉄格子
|
||||
Jail Bar|鉄格子
|
||||
Jail Bar|鉄格子
|
||||
Jail Bar|鉄格子
|
||||
256
www/img/tilesets/Inside_C.txt
Normal file
256
www/img/tilesets/Inside_C.txt
Normal file
|
|
@ -0,0 +1,256 @@
|
|||
Cup & Teapot A (Bottom)|カップとポットA(下)
|
||||
Cup & Teapot B (Top)|カップとポットB(上)
|
||||
Cup & Teapot C (Left)|カップとポットC(左)
|
||||
Cup & Teapot D (Right)|カップとポットD(右)
|
||||
Cup A (Bottom)|カップA(下)
|
||||
Cup B (Top)|カップB(上)
|
||||
Cup C (Left)|カップC(左)
|
||||
Cup D (Right)|カップD(右)
|
||||
Glass & Bottle A (Bottom)|グラスとボトルA(下)
|
||||
Glass & Bottle B (Top)|グラスとボトルB(上)
|
||||
Glass & Bottle C (Left)|グラスとボトルC(左)
|
||||
Glass & Bottle D (Right)|グラスとボトルD(右)
|
||||
Glass A (Bottom)|グラスA(下)
|
||||
Glass B (Top)|グラスB(上)
|
||||
Glass C (Left)|グラスC(左)
|
||||
Glass D (Right)|グラスD(右)
|
||||
Pint Mug & Ale Bottle A (Bottom)|ジョッキと瓶A(下)
|
||||
Pint Mug & Ale Bottles B (Top)|ジョッキと瓶B(上)
|
||||
Pint Mug & Ale Bottles C (Left)|ジョッキと瓶C(左)
|
||||
Pint Mug & Ale Bottle D (Right)|ジョッキと瓶D(右)
|
||||
Pint Mug A (Bottom)|ジョッキA(下)
|
||||
Pint Mug B (Top)|ジョッキB(上)
|
||||
Pint Mug C (Left)|ジョッキC(左)
|
||||
Pint Mug D (Right)|ジョッキD(右)
|
||||
Teapot|ポット
|
||||
Bottle A|ボトルA
|
||||
Bottles B|ボトルB
|
||||
Bottles C|ボトルC
|
||||
Broken Bottle|割れたボトル
|
||||
Ale Bottle A|瓶A
|
||||
Ale Bottles B|瓶B
|
||||
Ale Bottles C|瓶C
|
||||
Meal (Fish)|魚料理
|
||||
Meal (Meat)|肉料理
|
||||
Side Dishes|副菜
|
||||
Fruit Bowl|フルーツ盛り合わせ
|
||||
Roast Pig|丸焼き
|
||||
Cake|ケーキ
|
||||
Pizza|ピザ
|
||||
Meal (Fish)|魚料理
|
||||
Dinner Set A (Bottom)|夕食セットA(下)
|
||||
Dinner Set B (Top)|夕食セットB(上)
|
||||
Dinner Set C (Left)|夕食セットC(左)
|
||||
Dinner Set D (Right)|夕食セットD(右)
|
||||
Pie|パイ
|
||||
Fried Rice|チャーハン
|
||||
Mystery Dishes|謎の料理
|
||||
Cooking Disaster|失敗料理
|
||||
Breakfast Set A (Bottom)|朝食セットA(下)
|
||||
Breakfast Set B (Top)|朝食セットB(上)
|
||||
Breakfast Set C (Left)|朝食セットC(左)
|
||||
Breakfast Set D (Right)|朝食セットD(右)
|
||||
Plate A|皿A
|
||||
Bowl|ボウル
|
||||
Plates B|皿B
|
||||
Plates C|皿C
|
||||
Closed Book A (Bottom)|閉じた本A(下)
|
||||
Closed Book B (Top)|閉じた本B(上)
|
||||
Closed Book C (Left)|閉じた本C(左)
|
||||
Closed Book D (Right)|閉じた本D(右)
|
||||
Open Book A (Bottom)|開いた本A(下)
|
||||
Open Book B (Top)|開いた本B(上)
|
||||
Open Book C (Left)|開いた本C(左)
|
||||
Open Book D (Right)|開いた本D(右)
|
||||
Closed Old Book A (Bottom)|閉じた古文書A(下)
|
||||
Closed Old Book B (Top)|閉じた古文書B(上)
|
||||
Closed Old Book C (Left)|閉じた古文書C(左)
|
||||
Closed Old Book D (Right)|閉じた古文書D(右)
|
||||
Open Old Book A (Bottom)|開いた古文書A(下)
|
||||
Open Old Book B (Top)|開いた古文書B(上)
|
||||
Open Old Book C (Left)|開いた古文書C(左)
|
||||
Open Old Book D (Right)|開いた古文書D(右)
|
||||
Notes & Pen A (Bottom)|メモとペンA(下)
|
||||
Notes & Pen B (Top)|メモとペンB(上)
|
||||
Notes & Pen C (Left)|メモとペンC(左)
|
||||
Notes & Pen D (Right)|メモとペンD(右)
|
||||
Map A (Bottom)|地図A(下)
|
||||
Map B (Top)|地図B(上)
|
||||
Map C (Left)|地図C(左)
|
||||
Map D (Right)|地図D(右)
|
||||
Envelope & Letter|封筒と便箋
|
||||
Envelope|封筒
|
||||
Scrolls A|巻物A
|
||||
Scrolls B|巻物B
|
||||
Vase|花瓶
|
||||
Potted Plant A|植木鉢A
|
||||
Potted Plant B|植木鉢B
|
||||
Planter|プランター
|
||||
Case A|ケースA
|
||||
Case B|ケースB
|
||||
Letter Case|レターケース
|
||||
Cutting Board|まな板
|
||||
Small Box A|小箱A
|
||||
Small Box B|小箱B
|
||||
Small Box C|小箱C
|
||||
Small Box D|小箱D
|
||||
Sack A|袋A
|
||||
Sacks B|袋B
|
||||
Sacks C|袋C
|
||||
Medicine Bottle A|薬瓶A
|
||||
Medicine Bottles B|薬瓶B
|
||||
Medicine Bottles C|薬瓶C
|
||||
Potion A|液体入り瓶A
|
||||
Potions B|液体入り瓶B
|
||||
Basket A|バスケットA
|
||||
Basket B|バスケットB
|
||||
Basket C|バスケットC
|
||||
Basket D|バスケットD
|
||||
Rugs A|じゅうたんA
|
||||
Rugs B|じゅうたんB
|
||||
Rugs C|じゅうたんC
|
||||
Lab Equipment|実験器具
|
||||
Stuffed Doll A|ぬいぐるみA
|
||||
Stuffed Doll B|ぬいぐるみB
|
||||
Stuffed Doll C|ぬいぐるみC
|
||||
Stuffed Doll D|ぬいぐるみD
|
||||
Doll A|人形A
|
||||
Doll B|人形B
|
||||
Gifts A|プレゼントA
|
||||
Gifts B|プレゼントB
|
||||
Shovel|スコップ
|
||||
Pickax|つるはし
|
||||
Rope A|ロープA
|
||||
Rope B|ロープB
|
||||
Pendant|ペンダント
|
||||
Jewelry Case A|宝石ケースA
|
||||
Necklace|ネックレス
|
||||
Jewelry Case B|宝石ケースB
|
||||
Sword A|剣A
|
||||
Swords B|剣B
|
||||
Swords C|剣C
|
||||
Axes|斧
|
||||
Spears A|槍A
|
||||
Spears B|槍B
|
||||
Whip|鞭
|
||||
Knives|短剣
|
||||
Cooking Utensils|調理器具
|
||||
Dry Flowers|ドライフラワー
|
||||
Shield A|盾A
|
||||
Shield B|盾B
|
||||
Men's Clothing A (Hanging)|男物の服A(壁掛け)
|
||||
Men's Clothing B (Hanging)|男物の服B(壁掛け)
|
||||
Women's Clothing A (Hanging)|女物の服A(壁掛け)
|
||||
Women's Clothing B (Hanging)|女物の服B(壁掛け)
|
||||
Sword Rack A|剣掛台A
|
||||
Sword Rack B|剣掛台B
|
||||
Hammers|ハンマー
|
||||
Bows & Arrows|弓矢
|
||||
Blacksmith's Table A|金床A
|
||||
Blacksmith's Table B|金床B
|
||||
Large Basin|水桶
|
||||
Scrap Metal|鉄くず
|
||||
Helmet A|兜A
|
||||
Helmet B|兜B
|
||||
Helmet C|兜C
|
||||
Hat A (Stand)|帽子A(スタンド)
|
||||
Hat B (Stand)|帽子B(スタンド)
|
||||
Hat C (Stand)|帽子C(スタンド)
|
||||
Women's Clothing (Stand)|女物の服(スタンド)
|
||||
Dress (Stand)|ドレス(スタンド)
|
||||
Armor A (Stand)|鎧A(スタンド)
|
||||
Armor B (Stand)|鎧B(スタンド)
|
||||
Armor C (Stand)|鎧C(スタンド)
|
||||
Armor D (Stand)|鎧D(スタンド)
|
||||
Men's Clothing (Stand)|男物の服(スタンド)
|
||||
Cape (Stand)|マント(スタンド)
|
||||
Robe A (Stand)|ローブA(スタンド)
|
||||
Robe B (Stand)|ローブB(スタンド)
|
||||
Church Symbol|教会のシンボル
|
||||
Angel Statue A|天使像A
|
||||
Angel Statue B|天使像B
|
||||
Goddess Statue|女神像
|
||||
Statue|石像
|
||||
Dais|台座
|
||||
Repository of Swords|剣立て
|
||||
Repository of Spears|槍立て
|
||||
Church Symbol|教会のシンボル
|
||||
Angel Statue A|天使像A
|
||||
Angel Statue B|天使像B
|
||||
Goddess Statue|女神像
|
||||
Statue|石像
|
||||
Broken Statue|壊れた像
|
||||
Repository of Swords|剣立て
|
||||
Repository of Spears|槍立て
|
||||
Church Table A|教会机A
|
||||
Church Table A|教会机A
|
||||
Church Table A|教会机A
|
||||
Church Table B|教会机B
|
||||
Decorative Pillar A|装飾柱A
|
||||
Decorative Pillar B|装飾柱B
|
||||
Decorative Pillar A (Ruins)|装飾柱A(廃墟)
|
||||
Decorative Pillar B (Ruins)|装飾柱B(廃墟)
|
||||
Church Table A|教会机A
|
||||
Church Table A|教会机A
|
||||
Church Table A|教会机A
|
||||
Church Table B|教会机B
|
||||
Decorative Pillar A|装飾柱A
|
||||
Decorative Pillar B|装飾柱B
|
||||
Decorative Pillar A (Ruins)|装飾柱A(廃墟)
|
||||
Decorative Pillar B (Ruins)|装飾柱B(廃墟)
|
||||
Gold Bricks A|金の延べ棒A
|
||||
Gold Bricks B|金の延べ棒B
|
||||
Silver Bricks A|銀の延べ棒A
|
||||
Silver Bricks B|銀の延べ棒B
|
||||
Decorative Pillar A|装飾柱A
|
||||
Decorative Pillar B|装飾柱B
|
||||
Decorative Pillar A (Ruins)|装飾柱A(廃墟)
|
||||
Decorative Pillar B (Ruins)|装飾柱B(廃墟)
|
||||
Monument A|石碑A
|
||||
Monument B|石碑B
|
||||
Demon Statue|悪魔像
|
||||
Dragon Statue|竜像
|
||||
Dragon Statue|竜像
|
||||
Large Monument|大きな石碑
|
||||
Large Monument|大きな石碑
|
||||
Large Monument|大きな石碑
|
||||
Monument A|石碑A
|
||||
Monument C|石碑C
|
||||
Demon Statue|悪魔像
|
||||
Dragon Statue|竜像
|
||||
Dragon Statue|竜像
|
||||
Large Monument|大きな石碑
|
||||
Large Monument|大きな石碑
|
||||
Large Monument|大きな石碑
|
||||
Railings (Wood)|段差用手すり(木製)
|
||||
Railings (Wood)|段差用手すり(木製)
|
||||
Railings (Wood)|段差用手すり(木製)
|
||||
Railings (Wood)|段差用手すり(木製)
|
||||
Railings (Wood)|段差用手すり(木製)
|
||||
Railings (Wood)|段差用手すり(木製)
|
||||
Railings (Wood)|段差用手すり(木製)
|
||||
Railings (Wood)|段差用手すり(木製)
|
||||
Banister A (Wood)|階段用手すりA(木製)
|
||||
Banister A (Wood)|階段用手すりA(木製)
|
||||
Banister B (Stone)|階段用手すりB(石)
|
||||
Banister B (Stone)|階段用手すりB(石)
|
||||
Banister C (Temple)|階段用手すりC(神殿)
|
||||
Banister C (Temple)|階段用手すりC(神殿)
|
||||
Banister D (Castle)|階段用手すりD(城)
|
||||
Banister D (Castle)|階段用手すりD(城)
|
||||
Banister A (Wood)|階段用手すりA(木製)
|
||||
Banister A (Wood)|階段用手すりA(木製)
|
||||
Banister B (Stone)|階段用手すりB(石)
|
||||
Banister B (Stone)|階段用手すりB(石)
|
||||
Banister C (Temple)|階段用手すりC(神殿)
|
||||
Banister C (Temple)|階段用手すりC(神殿)
|
||||
Banister D (Castle)|階段用手すりD(城)
|
||||
Banister D (Castle)|階段用手すりD(城)
|
||||
Banister A (Wood)|階段用手すりA(木製)
|
||||
Banister A (Wood)|階段用手すりA(木製)
|
||||
Banister B (Stone)|階段用手すりB(石)
|
||||
Banister B (Stone)|階段用手すりB(石)
|
||||
Banister C (Temple)|階段用手すりC(神殿)
|
||||
Banister C (Temple)|階段用手すりC(神殿)
|
||||
Banister D (Castle)|階段用手すりD(城)
|
||||
Banister D (Castle)|階段用手すりD(城)
|
||||
16
www/img/tilesets/Outside_A1.txt
Normal file
16
www/img/tilesets/Outside_A1.txt
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
Water A (Meadow)|水場A(草地)
|
||||
Deep Water|深い水場
|
||||
Lotus Pads|蓮の葉
|
||||
Swamp Grass|水草
|
||||
Water B (Snow)|水場B(雪)
|
||||
Waterfall A (Stone Wall)|滝A(石壁)
|
||||
Canal|水路
|
||||
Waterfall B (Dirt Wall)|滝B(土壁)
|
||||
Water C (Dirt)|水場C(土)
|
||||
Waterfall C (Cliff)|滝C(崖)
|
||||
Water D (Sand)|水場 D(砂)
|
||||
Waterfall D (Boulder)|滝D(玉石)
|
||||
Water E (Port)|水場E(港)
|
||||
Waterfall E (Stone Wall)|滝E(石壁)
|
||||
Poison Swamp|毒の沼
|
||||
Dead Tree|枯れ木
|
||||
32
www/img/tilesets/Outside_A2.txt
Normal file
32
www/img/tilesets/Outside_A2.txt
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
Meadow|草地
|
||||
Dirt (Meadow)|土(草地)
|
||||
Road (Meadow)|道(草地)
|
||||
Cobblestones A|石畳A
|
||||
Bush|茂み
|
||||
Road Edging|縁石
|
||||
Fencepost A (Wood)|柵A(木製)
|
||||
Fissures|ひび割れ
|
||||
Dirt|土
|
||||
Grass (Dirt)|草地(土)
|
||||
Road (Dirt)|道(土)
|
||||
Cobblestones A (Snow)|石畳A(雪)
|
||||
Bush (Dead)|茂み(枯れ草)
|
||||
Road Edging (Snow)|縁石(雪)
|
||||
Fencepost B (Metal)|柵B(金属)
|
||||
Soil|汚れ
|
||||
Sand|砂地
|
||||
Grass (Sand)|草地(砂地)
|
||||
Road (Sand)|道(砂地)
|
||||
Cobblestones B|石畳B
|
||||
Bush (Sand)|茂み(砂地)
|
||||
Hole|穴
|
||||
Fencepost C (Stone)|柵C(石)
|
||||
Moss|苔
|
||||
Snow|雪
|
||||
Dirt (Snow)|土(雪)
|
||||
Road (Snow)|道(雪)
|
||||
Carpet|カーペット
|
||||
Bush (Snow)|茂み(雪)
|
||||
Hole|穴
|
||||
Fencepost A (Wood, Snow)|柵A(木製・雪)
|
||||
Poison Swamp|毒の沼
|
||||
32
www/img/tilesets/Outside_A3.txt
Normal file
32
www/img/tilesets/Outside_A3.txt
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
Roof A (Red Tile)|屋根A(赤瓦)
|
||||
Roof B (Orange Tile)|屋根B(橙瓦)
|
||||
Roof C (Indigo Tile)|屋根C(藍瓦)
|
||||
Roof D (Green Tile)|屋根D(緑瓦)
|
||||
Roof E (Blue Tile)|屋根E(青瓦)
|
||||
Roof F (Dressed Tile)|屋根F(化粧瓦)
|
||||
Roof G (Khaki Tile)|屋根G(カーキ瓦)
|
||||
Roof H (Sheet Metal)|屋根H(鉄板)
|
||||
Outer Wall A (Plaster)|外壁A(白壁)
|
||||
Outer Wall B (Rock Wall)|外壁B(石壁)
|
||||
Outer Wall C (Rock Wall)|外壁C(石壁)
|
||||
Outer Wall D (Rock Wall)|外壁D(石壁)
|
||||
Outer Wall E (Brick)|外壁E(レンガ)
|
||||
Outer Wall F (Decorative Tile)|外壁F(化粧タイル)
|
||||
Outer Wall G (Dirt)|外壁G(土壁)
|
||||
Outer Wall H (Wood)|外壁H(木造)
|
||||
Roof I (Wood)|屋根I(木造)
|
||||
Roof J (Wood)|屋根J(木造)
|
||||
Roof K (Log)|屋根K(丸太)
|
||||
Roof L (Thatch)|屋根L(藁)
|
||||
Roof M (Stone)|屋根M(石)
|
||||
Roof N (Tent)|屋根N(テント)
|
||||
Snow Roof A|雪の屋根A
|
||||
Snow Roof B|雪の屋根B
|
||||
Outer Wall I (Wood)|外壁I(木造)
|
||||
Outer Wall J (Wood)|外壁J(木造)
|
||||
Outer Wall K (Log)|外壁K(丸太)
|
||||
Outer Wall L (Wood)|外壁L(木造)
|
||||
Outer Wall M (Rock Wall)|外壁M(石壁)
|
||||
Outer Wall N (Tent)|外壁N(テント)
|
||||
Snow Outer Wall (Wood)|雪の外壁(木造)
|
||||
Snow Outer Wall (Brick)|雪の外壁(レンガ)
|
||||
48
www/img/tilesets/Outside_A4.txt
Normal file
48
www/img/tilesets/Outside_A4.txt
Normal file
|
|
@ -0,0 +1,48 @@
|
|||
Wall A (Stone)|壁A(石)
|
||||
Wall B (Brick)|壁B(レンガ)
|
||||
Wall C (Stone)|壁C(石)
|
||||
Wall D (Stone)|壁D(石)
|
||||
Wall E (Stone)|壁E(石)
|
||||
Wall F (Marble)|壁F(大理石)
|
||||
Wall G (Hedge)|壁G(生け垣)
|
||||
Wall G (Frozen)|壁H(凍結)
|
||||
Wall A (Stone)|壁A(石)
|
||||
Wall B (Brick)|壁B(レンガ)
|
||||
Wall C (Stone)|壁C(石)
|
||||
Wall D (Stone)|壁D(石)
|
||||
Wall E (Stone)|壁E(石)
|
||||
Wall F (Marble)|壁F(大理石)
|
||||
Wall G (Hedge)|壁G(生け垣)
|
||||
Wall G (Frozen)|壁H(凍結)
|
||||
Building A (Urban)|建物A(都会風)
|
||||
Building B (Dirt Wall)|建物B(土壁)
|
||||
Building C (Desert)|建物C(砂漠風)
|
||||
Building D (Temple, Snow)|建物D(神殿・雪)
|
||||
Building E (Castle)|建物E(城)
|
||||
Building F (Castle, Snow)|建物F(城・雪)
|
||||
Building G (Fort)|建物G(砦)
|
||||
Building H (Fort, Snow)|建物H(砦・雪)
|
||||
Building A (Urban)|建物A(都会風)
|
||||
Building B (Dirt Wall)|建物B(土壁)
|
||||
Building C (Desert)|建物C(砂漠風)
|
||||
Building D (Temple, Snow)|建物D(神殿・雪)
|
||||
Building E (Castle)|建物E(城)
|
||||
Building F (Castle, Snow)|建物F(城・雪)
|
||||
Building G (Fort)|建物G(砦)
|
||||
Building H (Fort, Snow)|建物H(砦・雪)
|
||||
Ledge A (Meadow)|段差A(草地)
|
||||
Ledge B (Dirt)|段差B(土)
|
||||
Ledge C (Desert)|段差C(砂地)
|
||||
Ledge D (Snow)|段差D(雪)
|
||||
Ledge E (Paved)|段差E(舗装)
|
||||
Forest A|森A
|
||||
Forest B (Snow)|森B(雪)
|
||||
Demon Castle|魔王城
|
||||
Cliff A (Meadow)|崖A(草地)
|
||||
Cliff B (Dirt)|崖B(土)
|
||||
Cliff C (Desert)|崖C(砂地)
|
||||
Cliff D (Snow)|崖D(雪)
|
||||
Wall (Paved)|壁(舗装)
|
||||
Forest A|森A
|
||||
Forest B (Snow)|森B(雪)
|
||||
Demon Castle|魔王城
|
||||
128
www/img/tilesets/Outside_A5.txt
Normal file
128
www/img/tilesets/Outside_A5.txt
Normal file
|
|
@ -0,0 +1,128 @@
|
|||
Darkness|暗闇
|
||||
Wire Mesh|金網
|
||||
Large Bridge (V, Left)|大きな橋(縦・左)
|
||||
Large Bridge (V, Center)|大きな橋(縦・中央)
|
||||
Large Bridge (V, Right)|大きな橋(縦・右)
|
||||
Large Bridge (H, Top)|大きな橋(横・上)
|
||||
Large Bridge (H, Center)|大きな橋(横・中央)
|
||||
Large Bridge (Snow, H, Top)|大きな橋(雪・横・上)
|
||||
Transparent|透明
|
||||
Wire Mesh|金網
|
||||
Large Bridge (Snow, V, Left)|大きな橋(雪・縦・左)
|
||||
Large Bridge (Snow, V, Center)|大きな橋(雪・縦・中央)
|
||||
Large Bridge (Snow, V, Right)|大きな橋(雪・縦・右)
|
||||
Large Bridge (H, Bottom)|大きな橋(横・下)
|
||||
Large Bridge (Snow, H, Center)|大きな橋(雪・横・中央)
|
||||
Large Bridge (Snow, H, Bottom)|大きな橋(雪・横・下)
|
||||
Meadow A|草地A
|
||||
Dirt A|土A
|
||||
Desert A|砂地A
|
||||
Snow A|雪A
|
||||
Meadow|草地B
|
||||
Dirt B|土B
|
||||
Desert B|砂地B
|
||||
Snow B|雪B
|
||||
Stairs (Meadow, Left)|階段(草地・左)
|
||||
Stairs (Meadow, Center)|階段(草地・中央)
|
||||
Stairs (Meadow, Right)|階段(草地・右)
|
||||
Stairs (Meadow)|階段
|
||||
Stairs (Dirt, Left)|階段(土・左)
|
||||
Stairs (Dirt, Center)|階段(土・中央)
|
||||
Stairs (Dirt, Right)|階段(土・右)
|
||||
Stairs (Dirt)|階段(土)
|
||||
Cobblestones A|石畳A
|
||||
Cobblestones B|石畳B
|
||||
Cobblestones C|石畳C
|
||||
Cobblestones D|石畳D
|
||||
Cobblestones A (Ruins)|石畳A(廃墟)
|
||||
Cobblestones B (Ruins)|石畳B(廃墟)
|
||||
Cobblestones C (Ruins)|石畳C(廃墟)
|
||||
Cobblestones D (Ruins)|石畳D(廃墟)
|
||||
Stairs (Desert, Left)|階段(砂地・左)
|
||||
Stairs (Desert, Center)|階段(砂地・中央)
|
||||
Stairs (Desert, Right)|階段(砂地・右)
|
||||
Stairs (Desert)|階段(砂地)
|
||||
Stairs (Snow, Left)|階段(雪・左)
|
||||
Stairs (Snow, Center)|階段(雪・中央)
|
||||
Stairs (Snow, Right)|階段(雪・右)
|
||||
Stairs (Snow)|階段(雪)
|
||||
Cobblestones E|石畳E
|
||||
Cobblestones F|石畳F
|
||||
Cobblestones G|石畳G
|
||||
Ice Floor A|氷の床A
|
||||
Cobblestones E (Ruins)|石畳E(廃墟)
|
||||
Cobblestones F (Ruins)|石畳F(廃墟)
|
||||
Cobblestones G (Ruins)|石畳G(廃墟)
|
||||
Ice Floor B|氷の床B
|
||||
Stairs (Paved, Left)|階段(舗装・左)
|
||||
Stairs (Paved, Center)|階段(舗装・中央)
|
||||
Stairs (Paved, Right)|階段(舗装・右)
|
||||
Stairs (Paved)|階段(舗装)
|
||||
Stairs (Ruins, Left)|階段(廃墟・左)
|
||||
Stairs (Ruins, Center)|階段(廃墟・中央)
|
||||
Stairs (Ruins, Right)|階段(廃墟・右)
|
||||
Stairs (Ruins)|階段(廃墟)
|
||||
Ledge (Port, Left)|段差(港・左)
|
||||
Ledge (Port, Center)|段差(港・中央)
|
||||
Ledge (Port, Right)|段差(港・右)
|
||||
Ledge (Port)|段差(港)
|
||||
Cobblestones H|石畳H
|
||||
Cobblestones I|石畳I
|
||||
Cloud A|雲A
|
||||
Cloud B|雲B
|
||||
Farm Field A (Top)|畑A(上)
|
||||
Farm Field A (Center)|畑A(中央)
|
||||
Farm Field B (Snow, Top)|畑B(雪・上)
|
||||
Farm Field B (Snow, Center)|畑B(雪・中央)
|
||||
Large Relief Floor Tile A|大きなレリーフ床A
|
||||
Large Relief Floor Tile A|大きなレリーフ床A
|
||||
Large Relief Floor Tile B|大きなレリーフ床B
|
||||
Large Relief Floor Tile B|大きなレリーフ床B
|
||||
Farm Field A (Bottom)|畑A(下)
|
||||
Farm Field A|畑A
|
||||
Farm Field B (Snow, Bottom)|畑B(雪・下)
|
||||
Farm Field B (Snow)|畑B(雪)
|
||||
Large Relief Floor Tile A|大きなレリーフ床A
|
||||
Large Relief Floor Tile A|大きなレリーフ床A
|
||||
Large Relief Floor Tile B|大きなレリーフ床B
|
||||
Large Relief Floor Tile B|大きなレリーフ床B
|
||||
Ledge (Meadow)|段差(草地)
|
||||
Ledge (Meadow)|段差(草地)
|
||||
Ledge (Meadow)|段差(草地)
|
||||
Garden A|花壇A
|
||||
Garden B (Snow)|花壇B(雪)
|
||||
Ledge (Dirt)|段差(土)
|
||||
Ledge (Dirt)|段差(土)
|
||||
Ledge (Dirt)|段差(土)
|
||||
Ledge (Meadow)|段差(草地)
|
||||
Ledge (Meadow)|段差(草地)
|
||||
Ledge (Meadow)|段差(草地)
|
||||
Ledge (Meadow)|段差(草地)
|
||||
Ledge (Meadow)|段差(草地)
|
||||
Ledge (Dirt)|段差(土)
|
||||
Ledge (Dirt)|段差(土)
|
||||
Ledge (Dirt)|段差(土)
|
||||
Ledge (Meadow)|段差(草地)
|
||||
Ledge (Meadow)|段差(草地)
|
||||
Ledge (Meadow)|段差(草地)
|
||||
Ledge (Meadow)|段差(草地)
|
||||
Ledge (Meadow)|段差(草地)
|
||||
Ledge (Dirt)|段差(土)
|
||||
Ledge (Dirt)|段差(土)
|
||||
Ledge (Dirt)|段差(土)
|
||||
Cliff|崖
|
||||
Cliff|崖
|
||||
Cliff|崖
|
||||
Ledge (Dirt)|段差(土)
|
||||
Ledge (Dirt)|段差(土)
|
||||
Cliff|崖
|
||||
Cliff|崖
|
||||
Cliff|崖
|
||||
Cliff (Meadow)|崖(草地)
|
||||
Cliff (Meadow)|崖(草地)
|
||||
Cliff (Meadow)|崖(草地)
|
||||
Ledge (Dirt)|段差(土)
|
||||
Ledge (Dirt)|段差(土)
|
||||
Cliff (Dirt)|崖(土)
|
||||
Cliff (Dirt)|崖(土)
|
||||
Cliff (Dirt)|崖(土)
|
||||
256
www/img/tilesets/Outside_B.txt
Normal file
256
www/img/tilesets/Outside_B.txt
Normal file
|
|
@ -0,0 +1,256 @@
|
|||
Transparent|透明
|
||||
Shop Sign (Sword)|看板(剣)
|
||||
Shop Sign (Sword & Shield)|看板(剣と盾)
|
||||
Shop Sign (Armor)|看板(鎧)
|
||||
Shop Sign (Sack)|看板(袋)
|
||||
Shop Sign (Teapot)|看板(ポット)
|
||||
Shop Sign (Inn)|看板(宿)
|
||||
Shop Sign (Pub)|看板(酒場)
|
||||
Shop Sign (Eatery)|看板(食堂)
|
||||
Shop Sign (Hexagram)|看板(魔法陣)
|
||||
Shop Sign (Staves)|看板(杖)
|
||||
Shop Sign (Coin)|看板(コイン)
|
||||
Shop Sign (Necklace)|看板(ネックレス)
|
||||
Shop Sign (Hammer)|看板(ハンマー)
|
||||
Shop Sign (Crest)|看板(紋章)
|
||||
Shop Sign (Blank)|看板(無地)
|
||||
Log Bridge (V)|丸太の橋(縦)
|
||||
Log Bridge (H)|丸太の橋(横)
|
||||
Wood Bridge (V)|木の橋(縦)
|
||||
Wood Bridge (H)|木の橋(横)
|
||||
Stone Bridge (V)|石の橋(縦)
|
||||
Stone Bridge (H)|石の橋(横)
|
||||
Wood Bridge (V)|木の橋(縦)
|
||||
Wood Bridge (H)|木の橋(横)
|
||||
Bridge Spar (Wood, Center A)|橋げた(木・中央A)
|
||||
Bridge Spar (Wood, Left)|橋げた(木・左)
|
||||
Bridge Spar (Wood, Center B)|橋げた(木・中央B)
|
||||
Bridge Spar (Wood, Right)|橋げた(木・右)
|
||||
Bridge Spar (Stone, Center A)|橋げた(石・中央A)
|
||||
Bridge Spar (Stone, Left)|橋げた(石・左)
|
||||
Bridge Spar (Stone, Center B)||橋げた(石・中央B)
|
||||
Bridge Spar (Stone, Right)|橋げた(石・右)
|
||||
Window A|窓A
|
||||
Window B|窓B
|
||||
Window C|窓C
|
||||
Window D|窓D
|
||||
Middle Window A|中型窓A
|
||||
Middle Window B|中型窓B
|
||||
Middle Window C|中型窓C
|
||||
Middle Window D|中型窓D
|
||||
Window E|窓E
|
||||
Window F|窓F
|
||||
Window G|窓G
|
||||
Stained Glass Window A|ステンドグラスA
|
||||
Middle Window A|中型窓A
|
||||
Middle Window E|中型窓E
|
||||
Middle Window C|中型窓C
|
||||
Middle Window D|中型窓D
|
||||
Large Window A|大型窓A
|
||||
Large Window B|大型窓B
|
||||
Large Window C|大型窓C
|
||||
Stained Glass Window B|ステンドグラスB
|
||||
Large Window D|大型窓D
|
||||
Middle Window F|中型窓F
|
||||
Middle Window G|中型窓G
|
||||
Middle Window H|中型窓H
|
||||
Large Window A|大型窓A
|
||||
Large Window E|大型窓E
|
||||
Large Window C|大型窓C
|
||||
Stained Glass Window B|ステンドグラスB
|
||||
Large Window D|大型窓D
|
||||
Middle Window F|中型窓F
|
||||
Middle Window G|中型窓G
|
||||
Middle Window H|中型窓H
|
||||
Chimney A|煙突A
|
||||
Mooring Bollard A|ビットA
|
||||
Mooring Bollard B (Rope)|ビットB(ロープ)
|
||||
Entrance A|入口A
|
||||
Entrance A (Extend)|入口A(延長部分)
|
||||
Entrance A (Top Half A)|入口A(上半分A)S
|
||||
Entrance B|入口B
|
||||
Entrance A (Top Half B)|入口A(上半分B)
|
||||
Chimney B|煙突B
|
||||
Sign A|立て札A
|
||||
Sign B|立て札B
|
||||
Well|井戸
|
||||
Stepping Stones|踏み石
|
||||
Barrel|樽
|
||||
Grave A|墓A
|
||||
Grave B|墓B
|
||||
Pot|壺
|
||||
Basin A|桶A
|
||||
Basin B|桶B
|
||||
Rock Fire Pit A|石のかまどA
|
||||
Rock Fire Pit B|石のかまどB
|
||||
Barricade (H)|バリケード(横)
|
||||
Barricade (V)|バリケード(縦)
|
||||
Beanstalk|豆の木
|
||||
Grass A|草A
|
||||
Grass B|草B
|
||||
Grass C|草C
|
||||
Grass D|草D
|
||||
Stump|切り株
|
||||
Tree|木
|
||||
Tree|木
|
||||
Boulder A|岩A
|
||||
Flowers A|花A
|
||||
Flowers B|花B
|
||||
Flowers C|花C
|
||||
Flowers D|花D
|
||||
Fallen Log|倒木
|
||||
Tree|木
|
||||
Bush|植え込み
|
||||
Boulder B|岩B
|
||||
Scarecrow|かかし
|
||||
Hole|穴
|
||||
Firewood|薪
|
||||
Rocks|小石
|
||||
Crops A|農作物A
|
||||
Crops B|農作物B
|
||||
Crops C|農作物C
|
||||
Crops D|農作物D
|
||||
Large Tree|大木
|
||||
Large Tree|大木
|
||||
Large Tree|大木
|
||||
Large Tree|大木
|
||||
Large Crate|大きな木箱
|
||||
Crate A|木箱A
|
||||
Crate B|木箱B
|
||||
Crate C|木箱C
|
||||
Large Tree|大木
|
||||
Large Tree|大木
|
||||
Large Tree|大木
|
||||
Large Tree|大木
|
||||
Large Crate|大きな木箱
|
||||
Crate D|木箱D
|
||||
Crate E|木箱E
|
||||
Crate F|木箱F
|
||||
Conifer Tree (Snow)|針葉樹(雪)
|
||||
Conifer Tree (Snow)|針葉樹(雪)
|
||||
Conifer Tree (Snow)|針葉樹(雪)
|
||||
Conifer Tree (Snow)|針葉樹(雪)
|
||||
Scarecrow (Snow)|かかし(雪)
|
||||
Pot (Snow)|壺(雪)
|
||||
Bucket (Snow)|桶(雪)
|
||||
Crate (Snow)|木箱(雪)
|
||||
Large Conifer Tree (Snow)|大針葉樹(雪)
|
||||
Large Conifer Tree (Snow)|大針葉樹(雪)
|
||||
Large Conifer Tree (Snow)|大針葉樹(雪)
|
||||
Large Conifer Tree (Snow)|大針葉樹(雪)
|
||||
Mooring Bollard (Snow)|ビット(雪)
|
||||
Barricade (H, Snow)|バリケード(横・雪)
|
||||
Barricade (H, Snow)|バリケード(縦・雪)
|
||||
Beanstalk (Snow)|豆の木(雪)
|
||||
Chimney (Snow)|煙突(雪)
|
||||
Sign A (Snow)|立て札A(雪)
|
||||
Sign B (Snow)|立て札B(雪)
|
||||
Well (Snow)|井戸(雪)
|
||||
Stepping Stones (Snow)|踏み石(雪)
|
||||
Barrel (Snow)|樽(雪)
|
||||
Grave A (Snow)|墓A(雪)
|
||||
Grave B (Snow)|墓B(雪)
|
||||
Grass A (Snow)|草A(雪)
|
||||
Grass B (Snow)|草B(雪)
|
||||
Grass C (Snow)|草C(雪)
|
||||
Grass D (Snow)|草D(雪)
|
||||
Stump (Snow)|切り株(雪)
|
||||
Conifer Tree (Snow)|針葉樹(雪)
|
||||
Conifer Tree (Snow)|針葉樹(雪)
|
||||
Boulder A (Snow)|岩A(雪)
|
||||
Snowman|雪だるま
|
||||
Hole (Snow)|穴(雪)
|
||||
Firewood (Snow)|薪(雪)
|
||||
Rocks (Snow)|小石(雪)
|
||||
Fallen Log (Snow)|倒木(雪)
|
||||
Conifer Tree (Snow)|針葉樹(雪)
|
||||
Bush (Snow)|植え込み(雪)
|
||||
Boulder B (Snow)|岩B(雪)
|
||||
Dead Tree|枯れ木
|
||||
Dead Tree|枯れ木
|
||||
Mushrooms A|キノコA
|
||||
Mushrooms B|キノコB
|
||||
Palm Tree|ヤシの木
|
||||
Palm Tree|ヤシの木
|
||||
Cactus|サボテン
|
||||
Dead Grass A|枯れ草A
|
||||
Dead Tree|枯れ木
|
||||
Dead Tree (Shrub)|枯れ木(低木)
|
||||
Rafflesia|ラフレシア
|
||||
Stump (Moss)|切り株(苔)
|
||||
Palm Tree|ヤシの木
|
||||
Bush (Flowers)|植え込み(花)
|
||||
Fern|シダ
|
||||
Dead Grass B|枯れ草B
|
||||
Hay|干し草
|
||||
Hay (Snow)|干し草(雪)
|
||||
Floral Patch|花畑
|
||||
Susuki Grass|ススキ
|
||||
Fallen Leaves|落ち葉
|
||||
Lotus Pads A|蓮の葉A
|
||||
Lotus Pads B (Flowers)|蓮の葉B(花)
|
||||
Lotus Pads C|蓮の葉C
|
||||
Wall Vines A|壁のツタA
|
||||
Wall Vines B|壁のツタB
|
||||
Wall Vines C|壁のツタC
|
||||
Wall Fern|壁のシダ
|
||||
Fissures A|亀裂A
|
||||
Fissures B|亀裂B
|
||||
Fissures C|亀裂C
|
||||
Fissures D|亀裂D
|
||||
Wall Vines A|壁のツタA
|
||||
Wall Vines B|壁のツタB
|
||||
Wall Vines C|壁のツタC
|
||||
Wall Moss|壁の苔
|
||||
Fissures A|亀裂A
|
||||
Fissures B|亀裂B
|
||||
Fissures C|亀裂C
|
||||
Fissures D|亀裂D
|
||||
Tent A|テントA
|
||||
Tent A|テントA
|
||||
Tent A|テントA
|
||||
Streetlight A|街灯A
|
||||
Stairs A (Up)|階段A(上り)
|
||||
Stairs B (Up)|階段B(上り)
|
||||
Stairs C (Up)|階段C(上り)
|
||||
Stairs D (Up)|階段D(上り)
|
||||
Tent A|テントA
|
||||
Tent A|テントA
|
||||
Tent A|テントA
|
||||
Streetlight A|街灯A
|
||||
Stairs A (Down)|階段A(下り)
|
||||
Stairs B (Down)|階段B(下り)
|
||||
Stairs C (Down)|階段C(下り)
|
||||
Stairs D (Down)|階段D(下り)
|
||||
Tent A|テントA
|
||||
Tent A (Entrance)|テントA(入口)
|
||||
Tent A|テントA
|
||||
Streetlight A|街灯A
|
||||
Metal Ladder|鉄ばしご
|
||||
Rope Ladder|縄ばしご
|
||||
Rope|ロープ
|
||||
Vines A|ツタ
|
||||
Tent B (Snow)|テントB(雪)
|
||||
Tent B (Snow)|テントB(雪)
|
||||
Tent B (Snow)|テントB(雪)
|
||||
Streetlight B (Snow)|街灯B(雪)
|
||||
Metal Ladder|鉄ばしご
|
||||
Rope Ladder|縄ばしご
|
||||
Rope|ロープ
|
||||
Vines A|ツタA
|
||||
Tent B (Snow)|テントB(雪)
|
||||
Tent B (Snow)|テントB(雪)
|
||||
Tent B (Snow)|テントB(雪)
|
||||
Streetlight B (Snow)|街灯B(雪)
|
||||
Metal Ladder|鉄ばしご
|
||||
Rope Ladder|縄ばしご
|
||||
Rope|ロープ
|
||||
Vines B (Down)|ツタB(下り)
|
||||
Tent B (Snow)|テントB(雪)
|
||||
Tent B (Entrance, Snow)|テント(入口・雪)
|
||||
Tent B (Snow)|テントB(雪)
|
||||
Streetlight B (Snow)|街灯B(雪)
|
||||
Hole A (Metal Ladder)|穴A(鉄ばしご)
|
||||
Hole B (Rope Ladder)|穴B(縄ばしご)
|
||||
Hole C (Rope)|穴C(ロープ)
|
||||
Hole D|穴D
|
||||
256
www/img/tilesets/Outside_C.txt
Normal file
256
www/img/tilesets/Outside_C.txt
Normal file
|
|
@ -0,0 +1,256 @@
|
|||
Stone Pillar A|石の柱A
|
||||
Stone Pillar B|石の柱B
|
||||
Stone Pillar C|石の柱C
|
||||
Stone Pillar C (Moss)|石の柱C(苔)
|
||||
Stone Pillar C (Snow)|石の柱C(雪)
|
||||
Wood Pillar|木の柱
|
||||
Stone Pillar D|石の柱D
|
||||
Demon Castle Pillar|魔王城の柱
|
||||
Stone Pillar A|石の柱A
|
||||
Stone Pillar B|石の柱B
|
||||
Stone Pillar C|石の柱C
|
||||
Stone Pillar C (Moss)|石の柱C(苔)
|
||||
Stone Pillar C (Snow)|石の柱C(雪)
|
||||
Wood Pillar|木の柱
|
||||
Stone Pillar D|石の柱D
|
||||
Demon Castle Pillar|魔王城の柱
|
||||
Broken Stone Pillar|折れた石の柱A
|
||||
Broken Stone Pillar|折れた石の柱B
|
||||
Broken Stone Pillar|折れた石の柱C
|
||||
Broken Stone Pillar C (Moss)|折れた石の柱C(苔)
|
||||
Broken Stone Pillar C (Snow)|折れた石の柱C(雪)
|
||||
Broken Wood Pillar|折れた木の柱
|
||||
Broken Stone Pillar F|折れた石の柱D
|
||||
Broken Demon Castle Pillar|折れた魔王城の柱
|
||||
Bones A|骸骨A
|
||||
Bones B|骸骨B
|
||||
Rubble|瓦礫A
|
||||
Rubble B (Moss)|瓦礫B(苔)
|
||||
Rubble C (Snow)|瓦礫C(雪)
|
||||
Broken Wood Pillar|折れた木の柱
|
||||
Rubble D|瓦礫D
|
||||
Rubble E (Demon Castle)|瓦礫E(魔王城)
|
||||
Tapestry A|タペストリーA
|
||||
Tapestry A (Ruins)|タペストリーA(廃墟)
|
||||
Tapestry B|タペストリーB
|
||||
Tapestry B (Ruins)|タペストリーB(廃墟)
|
||||
Tapestry C|タペストリーC
|
||||
Tapestry C (Ruins)|タペストリーC(廃墟)
|
||||
Tapestry D|タペストリーD
|
||||
Tapestry D (Ruins)|タペストリーD(廃墟)
|
||||
Tapestry A|タペストリーA
|
||||
Tapestry A (Ruins)|タペストリーA(廃墟)
|
||||
Tapestry B|タペストリーB
|
||||
Tapestry B (Ruins)|タペストリーB(廃墟)
|
||||
Tapestry C|タペストリーC
|
||||
Tapestry C (Ruins)|タペストリーC(廃墟)
|
||||
Tapestry D|タペストリーD
|
||||
Tapestry D (Ruins)|タペストリーD(廃墟)
|
||||
Monument A|石碑A
|
||||
Monument B|石碑B
|
||||
Large Monument|大きな石碑
|
||||
Large Monument|大きな石碑
|
||||
Large Monument|大きな石碑
|
||||
Large Monument (Lit)|大きな石碑(光)
|
||||
Large Monument (Lit)|大きな石碑(光)
|
||||
Large Monument (Lit)|大きな石碑(光)
|
||||
Monument A|石碑A
|
||||
Monument C|石碑C
|
||||
Large Monument|大きな石碑
|
||||
Large Monument|大きな石碑
|
||||
Large Monument|大きな石碑
|
||||
Large Monument (Lit)|大きな石碑(光)
|
||||
Large Monument (Lit)|大きな石碑(光)
|
||||
Large Monument (Lit)|大きな石碑(光)
|
||||
Monument A (Snow)|石碑A(雪)
|
||||
Monument B (Snow)|石碑B(雪)
|
||||
Large Monument (Snow)|大きな石碑(雪)
|
||||
Large Monument (Snow)|大きな石碑(雪)
|
||||
Large Monument (Snow)|大きな石碑(雪)
|
||||
Large Monument (Ruins)|大きな石碑(廃墟)
|
||||
Large Monument (Ruins)|大きな石碑(廃墟)
|
||||
Large Monument (Ruins)|大きな石碑(廃墟)
|
||||
Monument A (Snow)|石碑A(雪)
|
||||
Monument B (Snow)|石碑B(雪)
|
||||
Large Monument (Snow)|大きな石碑(雪)
|
||||
Large Monument (Snow)|大きな石碑(雪)
|
||||
Large Monument (Snow)|大きな石碑(雪)
|
||||
Large Monument (Ruins)|大きな石碑(廃墟)
|
||||
Large Monument (Ruins)|大きな石碑(廃墟)
|
||||
Large Monument (Ruins)|大きな石碑(廃墟)
|
||||
Statue A|石像A
|
||||
Angel Statue A|天使像A
|
||||
Angel Statue B|天使像B
|
||||
Demon Statue|悪魔像
|
||||
Dais|台座
|
||||
Dragon Statue|竜像
|
||||
Dragon Statue|竜像
|
||||
Statue B|石像B
|
||||
Statue A|石像A
|
||||
Angel Statue A|天使像A
|
||||
Angel Statue B|天使像B
|
||||
Demon Statue|悪魔像
|
||||
Dais|台座
|
||||
Dragon Statue|竜像
|
||||
Dragon Statue|竜像
|
||||
Statue B|石像B
|
||||
Statue A (Snow)|石像A(雪)
|
||||
Angel Statue A (Snow)|天使像A(雪)
|
||||
Angel Statue B (Snow)|天使像B(雪)
|
||||
Demon Statue (Snow)|悪魔像(雪)
|
||||
Dais (Snow)|台座(雪)
|
||||
Dragon Statue (Snow)|竜像(雪)
|
||||
Dragon Statue (Snow)|竜像(雪)
|
||||
Ice Statue|氷像
|
||||
Statue A (Snow)|石像A(雪)
|
||||
Angel Statue A (Snow)|天使像A(雪)
|
||||
Angel Statue B (Snow)|天使像B(雪)
|
||||
Demon Statue (Snow)|悪魔像(雪)
|
||||
Dais (Snow)|台座(雪)
|
||||
Dragon Statue (Snow)|竜像(雪)
|
||||
Dragon Statue (Snow)|竜像(雪)
|
||||
Ice Statue|氷像
|
||||
Window A (Demon Castle)|窓A(魔王城)
|
||||
Window B (Demon Castle)|窓B(魔王城)
|
||||
Window C (Demon Castle)|窓C(魔王城)
|
||||
Gravel Mound (Dirt)|土砂A(土)
|
||||
Large Gravel Mound (Dirt)|大きな土砂(土)
|
||||
Large Gravel Mound (Dirt)|大きな土砂(土)
|
||||
Cave Entrance|洞窟入口
|
||||
Mine Entrance|坑道入口
|
||||
Window A (Demon Castle)|窓A(魔王城)
|
||||
Window B (Demon Castle)|窓B(魔王城)
|
||||
Window D (Demon Castle)|窓D(魔王城)
|
||||
Gravel Mound B (Dirt, Snow)|土砂B(土・雪)
|
||||
Large Gravel Mound (Dirt)|大きな土砂(土)
|
||||
Large Gravel Mound (Dirt)|大きな土砂(土)
|
||||
Cave Entrance|洞窟入口
|
||||
Mine Entrance|坑道入口
|
||||
Roof A (Red Tile)|屋根A(赤瓦)
|
||||
Roof A (Red Tile)|屋根A(赤瓦)
|
||||
Roof A (Red Tile)|屋根A(赤瓦)
|
||||
Roof A (Red Tile)|屋根A(赤瓦)
|
||||
Roof A (Red Tile)|屋根A(赤瓦)
|
||||
Roof B (Snow)|屋根B(雪)
|
||||
Roof B (Snow)|屋根B(雪)
|
||||
Roof B (Snow)|屋根B(雪)
|
||||
Roof A (Red Tile)|屋根A(赤瓦)
|
||||
Roof A (Red Tile)|屋根A(赤瓦)
|
||||
Roof A (Red Tile)|屋根A(赤瓦)
|
||||
Roof A (Red Tile)|屋根A(赤瓦)
|
||||
Roof A (Red Tile)|屋根A(赤瓦)
|
||||
Roof B (Snow)|屋根B(雪)
|
||||
Roof B (Snow)|屋根B(雪)
|
||||
Roof B (Snow)|屋根B(雪)
|
||||
Roof A (Red Tile)|屋根A(赤瓦)
|
||||
Roof A (Red Tile)|屋根A(赤瓦)
|
||||
Roof A (Red Tile)|屋根A(赤瓦)
|
||||
Roof B (Snow)|屋根B(雪)
|
||||
Roof B (Snow)|屋根B(雪)
|
||||
Roof B (Snow)|屋根B(雪)
|
||||
Roof B (Snow)|屋根B(雪)
|
||||
Roof B (Snow)|屋根B(雪)
|
||||
Roof C (Indigo Tile)|屋根C(藍瓦)
|
||||
Roof C (Indigo Tile)|屋根C(藍瓦)
|
||||
Roof C (Indigo Tile)|屋根C(藍瓦)
|
||||
Roof B (Snow)|屋根B(雪)
|
||||
Roof B (Snow)|屋根B(雪)
|
||||
Roof D (Wood)|屋根D(木造)
|
||||
Roof D (Wood)|屋根D(木造)
|
||||
Roof D (Wood)|屋根D(木造)
|
||||
Roof C (Indigo Tile)|屋根C(藍瓦)
|
||||
Roof C (Indigo Tile)|屋根C(藍瓦)
|
||||
Roof C (Indigo Tile)|屋根C(藍瓦)
|
||||
Roof C (Indigo Tile)|屋根C(藍瓦)
|
||||
Roof C (Indigo Tile)|屋根C(藍瓦)
|
||||
Roof D (Wood)|屋根D(木造)
|
||||
Roof D (Wood)|屋根D(木造)
|
||||
Roof D (Wood)|屋根D(木造)
|
||||
Roof C (Indigo Tile)|屋根C(藍瓦)
|
||||
Roof C (Indigo Tile)|屋根C(藍瓦)
|
||||
Roof C (Indigo Tile)|屋根C(藍瓦)
|
||||
Roof C (Indigo Tile)|屋根C(藍瓦)
|
||||
Roof C (Indigo Tile)|屋根C(藍瓦)
|
||||
Roof D (Wood)|屋根D(木造)
|
||||
Roof D (Wood)|屋根D(木造)
|
||||
Roof D (Wood)|屋根D(木造)
|
||||
Round Tower A (Castle)|円塔A(城)
|
||||
Round Tower A (Castle)|円塔A(城)
|
||||
Roof Detail A (Red Tile)|屋根飾りA(赤瓦)
|
||||
Roof Detail B (Snow)|屋根飾りB(雪)
|
||||
Roof D (Wood)|屋根D(木造)
|
||||
Roof D (Wood)|屋根D(木造)
|
||||
Round Tower B (Fort)|円塔B(砦)
|
||||
Round Tower B (Fort)|円塔B(砦)
|
||||
Round Tower A (Castle)|円塔A(城)
|
||||
Round Tower A (Castle)|円塔A(城)
|
||||
Roof Detail C (Indigo Tile)|屋根飾りC(藍瓦)
|
||||
Roof Detail D (Wood)|屋根飾りD(木造)
|
||||
Roof D (Wood)|屋根D(木造)
|
||||
Roof D (Wood)|屋根D(木造)
|
||||
Round Tower B (Fort)|円塔B(砦)
|
||||
Round Tower B (Fort)|円塔B(砦)
|
||||
Round Tower A (Castle)|円塔A(城)
|
||||
Round Tower A (Castle)|円塔A(城)
|
||||
Round Tower A (Castle's Spire)|円塔A(城の尖塔)
|
||||
Round Tower A (Castle's Spire)|円塔A(城の尖塔)
|
||||
Round Tower B (Fort)|円塔B(砦)
|
||||
Round Tower B (Fort)|円塔B(砦)
|
||||
Round Tower B (Fort)|円塔B(砦)
|
||||
Round Tower B (Fort)|円塔B(砦)
|
||||
Round Tower A (Castle)|円塔A(城)
|
||||
Round Tower A (Castle)|円塔A(城)
|
||||
Round Tower A (Castle's Spire)|円塔A(城の尖塔)
|
||||
Round Tower A (Castle's Spire)|円塔A(城の尖塔)
|
||||
Round Tower C (Demon Castle)|円塔C(魔王城)
|
||||
Round Tower C (Demon Castle)|円塔C(魔王城)
|
||||
Round Tower B (Fort)|円塔B(砦)
|
||||
Round Tower B (Fort)|円塔B(砦)
|
||||
Round Tower A (Castle)|円塔A(城)
|
||||
Round Tower A (Castle)|円塔A(城)
|
||||
Round Tower A (Castle's Spire)|円塔A(城の尖塔)
|
||||
Round Tower A (Castle's Spire)|円塔A(城の尖塔)
|
||||
Round Tower C (Demon Castle)|円塔C(魔王城)
|
||||
Round Tower C (Demon Castle)|円塔C(魔王城)
|
||||
Round Tower B (Fort)|円塔B(砦)
|
||||
Round Tower B (Fort)|円塔B(砦)
|
||||
Round Tower A (Castle, Snow)|円塔A(城・雪)
|
||||
Round Tower A (Castle, Snow)|円塔A(城・雪)
|
||||
Round Tower A (Castle)|円塔A(城)
|
||||
Round Tower A (Castle)|円塔A(城)
|
||||
Round Tower C (Demon Castle)|円塔C(魔王城)
|
||||
Round Tower C (Demon Castle)|円塔C(魔王城)
|
||||
Round Tower B (Fort, Snow)|円塔B(砦・雪)
|
||||
Round Tower B (Fort, Snow)|円塔B(砦・雪)
|
||||
Round Tower A (Castle, Snow)|円塔A(城・雪)
|
||||
Round Tower A (Castle, Snow)|円塔A(城・雪)
|
||||
Round Tower A (Castle's Spire, Snow)|円塔A(城の尖塔・雪)
|
||||
Round Tower A (Castle's Spire, Snow)|円塔A(城の尖塔・雪)
|
||||
Round Tower C (Demon Castle)|円塔C(魔王城)
|
||||
Round Tower C (Demon Castle)|円塔C(魔王城)
|
||||
Round Tower B (Fort, Snow)|円塔B(砦・雪)
|
||||
Round Tower B (Fort, Snow)|円塔B(砦・雪)
|
||||
Round Tower A (Castle, Snow)|円塔A(城・雪)
|
||||
Round Tower A (Castle, Snow)|円塔A(城・雪)
|
||||
Round Tower A (Castle's Spire, Snow)|円塔A(城の尖塔・雪)
|
||||
Round Tower A (Castle's Spire, Snow)|円塔A(城の尖塔・雪)
|
||||
Round Tower C (Demon Castle)|円塔C(魔王城)
|
||||
Round Tower C (Demon Castle)|円塔C(魔王城)
|
||||
Round Tower B (Fort, Snow)|円塔B(砦・雪)
|
||||
Round Tower B (Fort, Snow)|円塔B(砦・雪)
|
||||
Round Tower A (Castle, Snow)|円塔A(城・雪)
|
||||
Round Tower A (Castle, Snow)|円塔A(城・雪)
|
||||
Round Tower A (Castle's Spire, Snow)|円塔A(城の尖塔・雪)
|
||||
Round Tower A (Castle's Spire, Snow)|円塔A(城の尖塔・雪)
|
||||
Round Tower C (Demon Castle)|円塔C(魔王城)
|
||||
Round Tower C (Demon Castle)|円塔C(魔王城)
|
||||
Round Tower B (Fort, Snow)|円塔B(砦・雪)
|
||||
Round Tower B (Fort, Snow)|円塔B(砦・雪)
|
||||
Round Tower A (Castle, Snow)|円塔A(城・雪)
|
||||
Round Tower A (Castle, Snow)|円塔A(城・雪)
|
||||
Round Tower A (Castle, Snow)|円塔A(城・雪)
|
||||
Round Tower A (Castle, Snow)|円塔A(城・雪)
|
||||
Round Tower B (Fort, Snow)|円塔B(砦・雪)
|
||||
Round Tower B (Fort, Snow)|円塔B(砦・雪)
|
||||
Round Tower B (Fort, Snow)|円塔B(砦・雪)
|
||||
Round Tower B (Fort, Snow)|円塔B(砦・雪)
|
||||
48
www/img/tilesets/SF_Inside_A4.txt
Normal file
48
www/img/tilesets/SF_Inside_A4.txt
Normal file
|
|
@ -0,0 +1,48 @@
|
|||
Wall A (Concrete)|壁A(コンクリート)
|
||||
Wall B (Concrete, Dirty)|壁B(コンクリート・汚れ)
|
||||
Wall C (House)|壁C(現代住宅)
|
||||
Wall D (Metal)|壁D(金属)
|
||||
Wall E (Metal, Red Rust)|壁E(金属・赤錆)
|
||||
Wall F (Metal, Patina)|壁F(金属・緑青錆)
|
||||
Wall G (Barracks)|壁G(バラック)
|
||||
Wall H (Chinese)|壁H(中華風)
|
||||
Wall A (Concrete)|壁A(コンクリート)
|
||||
Wall B (Concrete, Dirty)|壁B(コンクリート・汚れ)
|
||||
Wall C (House)|壁C(現代住宅)
|
||||
Wall D (Metal)|壁D(金属)
|
||||
Wall E (Metal, Red Rust)|壁E(金属・赤錆)
|
||||
Wall F (Metal, Patina)|壁F(金属・緑青錆)
|
||||
Wall G (Barracks)|壁G(バラック)
|
||||
Wall H (Chinese)|壁H(中華風)
|
||||
Wall I (Factory)|壁I(工場)
|
||||
Wall J (Factory)|壁J(工場)
|
||||
Wall K (Building)|壁K(ビル)
|
||||
Wall L (Checkered)|壁L(市松)
|
||||
Interior Wall A (Pattern)|内装壁A(模様)
|
||||
Interior Wall B (Pattern)|内装壁B(模様)
|
||||
Interior Wall C (Pattern)|内装壁C(模様)
|
||||
Wall M (Brick)|壁M(レンガ)
|
||||
Wall I (Factory)|壁I(工場)
|
||||
Wall J (Factory)|壁J(工場)
|
||||
Wall K (Building)|壁K(ビル)
|
||||
Wall L (Checkered)|壁L(市松)
|
||||
Interior Wall A (Pattern)|内装壁A(模様)
|
||||
Interior Wall B (Pattern)|内装壁B(模様)
|
||||
Interior Wall C (Pattern)|内装壁C(模様)
|
||||
Wall M (Brick)|壁M(レンガ)
|
||||
Wall N (Wood)|壁N(木造)
|
||||
Wall O (Wood, Dirty)|壁O(木造・汚れ)
|
||||
Wall P (Artery)|壁P(動脈)
|
||||
Wall Q (In Body)|壁Q(体内)
|
||||
Wall R (Neon)|壁R(ネオン)
|
||||
Wall S (Wire Mesh)|壁S(金網)
|
||||
Wall T (Wire Mesh, Red Rust)|壁T(金網・赤錆)
|
||||
Wall U (Wire Mesh, Patina)|壁U(金網・緑青錆)
|
||||
Wall N (Wood)|壁N(木造)
|
||||
Wall O (Wood, Dirty)|壁O(木造・汚れ)
|
||||
Wall P (Artery)|壁P(動脈)
|
||||
Wall Q (In Body)|壁Q(体内)
|
||||
Wall R (Neon)|壁R(ネオン)
|
||||
Wall S (Wire Mesh)|壁S(金網)
|
||||
Wall T (Wire Mesh, Red Rust)|壁T(金網・赤錆)
|
||||
Wall U (Wire Mesh, Patina)|壁U(金網・緑青錆)
|
||||
256
www/img/tilesets/SF_Inside_B.txt
Normal file
256
www/img/tilesets/SF_Inside_B.txt
Normal file
|
|
@ -0,0 +1,256 @@
|
|||
Transparent|透明
|
||||
Stairs A (Up)|階段A(上り)
|
||||
Stairs B (Up)|階段B(上り)
|
||||
Stairs C (Up)|階段C(上り)
|
||||
Stairs D (Up)|階段D(上り)
|
||||
Metal Ladder|鉄ばしご
|
||||
Metal Stairs|金属階段
|
||||
Rope|ロープ
|
||||
Hole|穴
|
||||
Stairs A (Down)|階段A(下り)
|
||||
Stairs B (Down)|階段B(下り)
|
||||
Stairs C (Down)|階段C(下り)
|
||||
Stairs D (Down)|階段D(下り)
|
||||
Metal Ladder|鉄ばしご
|
||||
Metal Stairs|金属階段
|
||||
Rope|ロープ
|
||||
Midsize Window A|中型窓A
|
||||
Midsize Window B|中型窓B
|
||||
Large Window A|大型窓A
|
||||
Midsize Window C|中型窓C
|
||||
Large Window B|大型窓B
|
||||
Metal Ladder|鉄ばしご
|
||||
Metal Stairs|金属階段
|
||||
Rope|ロープ
|
||||
Midsize Window A|中型窓A
|
||||
Midsize Window B|中型窓B
|
||||
Large Window A|大型窓A
|
||||
Midsize Window C|中型窓C
|
||||
Large Window B|大型窓B
|
||||
Hole A (Metal Ladder)|穴A(鉄ばしご)
|
||||
Hole B (Metal Stairs)|穴B(金属階段)
|
||||
Hole C (Rope)|穴C(ロープ)
|
||||
Asphalt Bridge (V)|アスファルトの橋(縦)
|
||||
Asphalt Bridge (H)|アスファルトの橋(横)
|
||||
Stone Bridge (V)|石の橋(縦)
|
||||
Stone Bridge (H)|石の橋(横)
|
||||
Metal Bridge A (V)|金属の橋A(縦)
|
||||
Metal Bridge A (H)|金属の橋A(横)
|
||||
Metal Bridge B (V)|金属の橋B(縦)
|
||||
Metal Bridge B (H)|金属の橋B(横)
|
||||
Bridge Spar A (Asphalt, Center A)|橋げたA(アスファルト・中央A)
|
||||
Bridge Spar A (Asphalt, Left)|橋げたA(アスファルト・左)
|
||||
Bridge Spar A (Asphalt, Center B)|橋げたA(アスファルト・中央B)
|
||||
Bridge Spar A (Asphalt, Right)|橋げたA(アスファルト・右)
|
||||
Bridge Spar B (Metal, Center A)|橋げたB(金属・中央A)
|
||||
Bridge Spar B (Metal, Left)|橋げたB(金属・左)
|
||||
Bridge Spar B (Metal, Center B)|橋げたB(金属・中央B)
|
||||
Bridge Spar B (Metal, Right)|橋げたB(金属・右)
|
||||
Metal Fence|金属フェンス
|
||||
Metal Fence|金属フェンス
|
||||
Metal Fence|金属フェンス
|
||||
Warning Plate (Keep Out)|警告プレート(KEEP OUT)
|
||||
Connecting Bridge (Metal)|連絡橋(金属)
|
||||
Connecting Bridge (Metal)|連絡橋(金属)
|
||||
Connecting Bridge (Metal)|連絡橋(金属)
|
||||
Connecting Bridge (Metal, Stairs)|連絡橋(金属・階段)
|
||||
Metal Fence|金属フェンス
|
||||
Warning Plate (Exclamation Mark)|警告プレート(!マーク)
|
||||
Metal Fence|金属フェンス
|
||||
Warning Plate (Radioactivity Mark)|警告プレート(放射能マーク)
|
||||
Connecting Bridge (Metal)|連絡橋(金属)
|
||||
Connecting Bridge (Metal)|連絡橋(金属)
|
||||
Connecting Bridge (Metal)|連絡橋(金属)
|
||||
Connecting Bridge (Metal, Stairs)|連絡橋(金属・階段)
|
||||
Metal Fence|金属フェンス
|
||||
Metal Fence|金属フェンス
|
||||
Metal Fence|金属フェンス
|
||||
Warning Plate (Biohazard Mark)|警告プレート(バイオハザードマーク)
|
||||
Connecting Bridge (Metal)|連絡橋(金属)
|
||||
Connecting Bridge (Metal)|連絡橋(金属)
|
||||
Connecting Bridge (Metal)|連絡橋(金属)
|
||||
Podium (H)|教壇机(横)
|
||||
Pillar A (Asphalt)|柱A(アスファルト)
|
||||
Pillar B (Metal)|柱B(金属)
|
||||
Pillar C (Machine)|柱C(機械)
|
||||
Pillar D (Decoration)|柱D(装飾)
|
||||
Pillar E (Metal)|柱E(金属)
|
||||
Pillar F (Brick)|柱F(レンガ)
|
||||
Large Window C|大型窓C
|
||||
Podium (H)|教壇机(横)
|
||||
Pillar A (Asphalt)|柱A(アスファルト)
|
||||
Pillar B (Metal)|柱B(金属)
|
||||
Pillar C (Machine)|柱C(機械)
|
||||
Pillar D (Decoration)|柱D(装飾)
|
||||
Pillar E (Metal)|柱E(金属)
|
||||
Pillar F (Brick)|柱F(レンガ)
|
||||
Large Window C|大型窓C
|
||||
Podium (V)|教壇机(縦)
|
||||
Broken Pillar A (Asphalt)|折れた柱A(アスファルト)
|
||||
Broken Pillar B (Metal)|折れた柱B(金属)
|
||||
Broken Pillar C (Machine)|折れた柱C(機械)
|
||||
Broken Pillar D (Decoration)|折れた柱D(装飾)
|
||||
Broken Pillar E (Metal)|折れた柱E(金属)
|
||||
Broken Pillar F (Brick)|折れた柱F(レンガ)
|
||||
Barricade (No Entry)|バリケード(通行禁止)
|
||||
Podium (V)|教壇机(縦)
|
||||
Girder A (Asphalt, Left)|梁A(アスファルト・左)
|
||||
Girder A (Asphalt, Center)|梁A(アスファルト・中央)
|
||||
Girder A (Asphalt, Right)|梁A(アスファルト・右)
|
||||
Girder C (Decoration, Left)|梁C(装飾・左)
|
||||
Girder C (Decoration, Center)|梁C(装飾・中央)
|
||||
Girder C (Decoration, Right)|梁C(装飾・右)
|
||||
Bar (No Entry)|バー(通行禁止)
|
||||
Bar (No Entry)|バー(通行禁止)
|
||||
Girder B (Metal, Left)|梁B(金属・左)
|
||||
Girder B (Metal, Center)|梁B(金属・中央)
|
||||
Girder B (Metal, Right)|梁B(金属・右)
|
||||
Rubble A (Asphalt)|瓦礫A(アスファルト)
|
||||
Rubble B (Metal)|瓦礫B(金属)
|
||||
Fissures A|亀裂A
|
||||
Fissures B|亀裂B
|
||||
Fissures C|亀裂C
|
||||
Jail Bars|鉄格子
|
||||
Laser Barrier|レーザーバリア
|
||||
Wheelchair (Left)|車いす(左)
|
||||
Wheelchair (Right)|車いす(右)
|
||||
Pipe Frame Bed (Ruins)|パイプベッド(廃墟)
|
||||
Fissures A|亀裂A
|
||||
Fissures B|亀裂B
|
||||
Fissures C|亀裂C
|
||||
Jail Bars|鉄格子
|
||||
Laser Barrier|レーザーバリア
|
||||
Wheelchair (Bottom)|車いす(下)
|
||||
Wheelchair (Fallen)|車いす(倒れ)
|
||||
Pipe Frame Bed (Ruins)|パイプベッド(廃墟)
|
||||
Lab Equipment|実験器具
|
||||
School Desk (V)|学校机(縦)
|
||||
School Desk (H)|学校机(横)
|
||||
TV|テレビ
|
||||
Computer|PC
|
||||
Laptop|ノートPC
|
||||
Printer|プリンター
|
||||
Telephone|電話
|
||||
Intercom (Hanging)|インターホン(壁掛け)
|
||||
Tablet Device|タブレット端末
|
||||
Table Clock|置時計
|
||||
Gas Stove|ガスコンロ
|
||||
Kitchen Counter|調理台
|
||||
Sink|流し
|
||||
Exhaust Fan|換気扇
|
||||
Air Conditioner|エアコン
|
||||
Wastebasket|ゴミ箱
|
||||
Book Stand|本立て
|
||||
Document|書類
|
||||
School Chair (Bottom)|学校イス(下)
|
||||
School Chair (Top)|学校イス(上)
|
||||
School Chair (Right)|学校イス(右)
|
||||
School Chair (Left)|学校イス(左)
|
||||
Sofa (Right)|ソファ(右)
|
||||
Sofa (Left)|ソファ(左)
|
||||
Sofa (Down)|ソファ(下)
|
||||
Sofa (Up)|ソファ(下)
|
||||
Office Chair (Bottom)|オフィスチェア(下)
|
||||
Office Chair (Top)|オフィスチェア(上)
|
||||
Office Chair (Right)|オフィスチェア(右)
|
||||
Office Chair (Left)|オフィスチェア(左)
|
||||
Sofa (Right)|ソファ(右)
|
||||
Sofa (Left)|ソファ(左)
|
||||
Sofa (Top)|ソファ(上)
|
||||
Sofa (Top)|ソファ(上)
|
||||
Washing Machine|洗濯機
|
||||
Western Style Toilet|洋式便器
|
||||
Urinal|男性用便器
|
||||
Bathroom Sink|洗面台
|
||||
Bathtub (V)|バスタブ(縦)
|
||||
Bathtub (H)|バスタブ(横)
|
||||
Bathtub (H)|バスタブ(横)
|
||||
Glass Table (V)|ガラステーブル(縦)
|
||||
Washing Machine|洗濯機
|
||||
Western Style Toilet|洋式便器
|
||||
Urinal|男性用便器
|
||||
Wash Basin|洗面台
|
||||
Bathtub (V)|バスタブ(縦)
|
||||
Glass Table (H)|ガラステーブル(横)
|
||||
Glass Table (H)|ガラステーブル(横)
|
||||
Glass Table (V)|ガラステーブル(縦)
|
||||
Refrigerator|冷蔵庫
|
||||
Bookshelf A|本棚A
|
||||
Chest of Drawers A|タンスA
|
||||
Miscellaneous Item Shelf|雑貨棚
|
||||
Locker A|ロッカーA
|
||||
Document Shelf|資料棚
|
||||
Medicine Shelf|薬品棚
|
||||
Locker B (School)|ロッカーB(学校)
|
||||
Refrigerator|冷蔵庫
|
||||
Bookshelf A|本棚A
|
||||
Chest of Drawers A|タンスA
|
||||
Miscellaneous Item Shelf |雑貨棚
|
||||
Locker A|ロッカーA
|
||||
Document Shelf|資料棚
|
||||
Medicine Shelf|薬品棚
|
||||
Locker B (School)|ロッカーB(学校)
|
||||
Display Shelf A|商品陳列棚A
|
||||
Display Shelf B|商品陳列棚B
|
||||
Convenience Store Shelf A|コンビニ棚A
|
||||
Convenience Store Shelf B|コンビニ棚B
|
||||
Document Shelf (Ruins)|資料棚(廃墟)
|
||||
Chest of Drawers B (Decoration)|タンスB(装飾)
|
||||
Shelf A (Decoration)|棚A(装飾)
|
||||
Bookshelf B (Decoration)|本棚B(装飾)
|
||||
Display Shelf A|商品陳列棚A
|
||||
Display Shelf B|商品陳列棚B
|
||||
Convenience Store Shelf A|コンビニ棚A
|
||||
Convenience Store Shelf B|コンビニ棚B
|
||||
Document Shelf (Ruins)|資料棚(廃墟)
|
||||
Chest of Drawers B (Decoration)|タンスB(装飾)
|
||||
Shelf A (Decoration)|棚A(装飾)
|
||||
Bookshelf B (Decoration)|本棚B(装飾)
|
||||
Stacked Crates|積まれた木箱
|
||||
Shipping Container|コンテナ
|
||||
Stacked Cardboard Boxes|積まれたダンボール
|
||||
Vending Machine|自動販売機
|
||||
ATM|ATM
|
||||
Steel Shelf|鉄骨棚
|
||||
Operating Table|手術台
|
||||
Hospital Bed|病院ベッド
|
||||
Stacked Crates|積まれた木箱
|
||||
Shipping Container|コンテナ
|
||||
Stacked Cardboard Boxes|積まれたダンボール
|
||||
Vending Machine|自動販売機
|
||||
ATM|ATM
|
||||
Steel Shelf|鉄骨棚
|
||||
Operating Table|手術台
|
||||
Hospital Bed|病院ベッド
|
||||
Bed|ベッド
|
||||
Mattress|敷布団
|
||||
Large Bed|ダブルベッド
|
||||
Large Bed|ダブルベッド
|
||||
Pipe Frame Bed|パイプベッド
|
||||
Slot Machine |スロット
|
||||
Poker Table|ポーカー台
|
||||
Poker Table|ポーカー台
|
||||
Bed|ベッド
|
||||
Mattress|敷布団
|
||||
Large Bed|ダブルベッド
|
||||
Large Bed|ダブルベッド
|
||||
Pipe Frame Bed|パイプベッド
|
||||
Slot Machine|スロット
|
||||
Poker Table|ポーカー台
|
||||
Poker Table|ポーカー台
|
||||
Chest A (Wood)|チェストA(木製)
|
||||
Chest B (Metal)|チェストB(金属)
|
||||
Chest C (Decoration)|チェストC(装飾)
|
||||
Large Desk A|大きいデスクA
|
||||
Large Desk A|大きいデスクA
|
||||
Roulette Table|ルーレット台
|
||||
Roulette Table|ルーレット台
|
||||
Roulette Table|ルーレット台
|
||||
Side Desk A (Wood)|サイドデスクA(木製)
|
||||
Side Desk B (Metal)|サイドデスクB(金属)
|
||||
Desk|デスク
|
||||
Large Desk B|大きいデスクB
|
||||
Large Desk B|大きいデスクB
|
||||
Roulette Table|ルーレット台
|
||||
Roulette Table|ルーレット台
|
||||
Roulette Table|ルーレット台
|
||||
256
www/img/tilesets/SF_Inside_C.txt
Normal file
256
www/img/tilesets/SF_Inside_C.txt
Normal file
|
|
@ -0,0 +1,256 @@
|
|||
Black Board|黒板
|
||||
Black Board|黒板
|
||||
Black Board|黒板
|
||||
White Board|ホワイトボード
|
||||
White Board|ホワイトボード
|
||||
White Board|ホワイトボード
|
||||
Cloth Partition A|布の衝立A
|
||||
Cloth Partition B|布の衝立B
|
||||
Black Board|黒板
|
||||
Black Board|黒板
|
||||
Black Board|黒板
|
||||
White Board|ホワイトボード
|
||||
White Board|ホワイトボード
|
||||
White Board|ホワイトボード
|
||||
Cloth Partition A|布の衝立A
|
||||
Cloth Partition B|布の衝立B
|
||||
Stool|腰掛けイス
|
||||
Skeleton Model|骨格模型
|
||||
Biological Specimen|生物標本
|
||||
Potted Plant|植木鉢
|
||||
Armchair|肘掛け椅子
|
||||
Insect Specimen|昆虫標本
|
||||
Restroom Mark (Men)|トイレマーク(男性)
|
||||
Restroom Mark (Women)|トイレマーク(女性)
|
||||
Wall Speaker|壁掛けスピーカー
|
||||
Skeleton Model |骨格模型
|
||||
Biological Specimen|生物標本
|
||||
Fire Extinguisher|消火器
|
||||
Armchair|肘掛け椅子
|
||||
Room Plate|室名札
|
||||
EXIT Sign|EXITプレート
|
||||
Vent|通気口
|
||||
Painting A|絵画A
|
||||
Painting B|絵画B
|
||||
Vision Test Chart|視力検査表
|
||||
Plaster Bust|石膏胸像
|
||||
Calendar|カレンダー
|
||||
Plant A|植物A
|
||||
Plant B|植物B
|
||||
Plant C|植物C
|
||||
Painting C|絵画C
|
||||
Painting D|絵画D
|
||||
Anatomical Chart|人体図
|
||||
Canvas|キャンバス
|
||||
Bulletin Board|掲示板
|
||||
Plant A|植物A
|
||||
Plant B|植物B
|
||||
Plant C|植物C
|
||||
Plumbing|配管
|
||||
Plumbing|配管
|
||||
Valve|バルブ
|
||||
Machine A|機械A
|
||||
Machine B|機械B
|
||||
Machine C|機械C
|
||||
Air Vent A|通風口A
|
||||
Air Vent B|通風口B
|
||||
Plumbing|配管
|
||||
Plumbing|配管
|
||||
Plumbing|配管
|
||||
Neon Tube|ネオン管
|
||||
Neon Tube|ネオン管
|
||||
Neon Tube|ネオン管
|
||||
Fan|ファン
|
||||
Fluorescent Light|蛍光灯
|
||||
Plumbing|配管
|
||||
Plumbing|配管
|
||||
Plumbing|配管
|
||||
Neon Tube|ネオン管
|
||||
Neon Tube|ネオン管
|
||||
Neon Tube|ネオン管
|
||||
Outdoor Air Intake Unit|室外機
|
||||
Shutter|シャッター
|
||||
Plumbing|配管
|
||||
Plumbing|配管
|
||||
Plumbing|配管
|
||||
Control Panel A|操作パネルA
|
||||
Control Panel B|操作パネルB
|
||||
Control Panel C|操作パネルC
|
||||
Pipe (H)|パイプ(横)
|
||||
Pipe (V)|パイプ(縦)
|
||||
Line A|ラインA
|
||||
Line B|ラインB
|
||||
Road Closed|通行止め
|
||||
Waste|廃棄物
|
||||
Scrap Metal|スクラップ
|
||||
Mysterious Liquid|謎の液体
|
||||
Scattered Papers|散らばった紙
|
||||
Pipe (V)|パイプ(縦)
|
||||
Belt Conveyor (V)|ベルトコンベアー(縦)
|
||||
Belt Conveyor (H)|ベルトコンベアー(横)
|
||||
Belt Conveyor (H)|ベルトコンベアー(横)
|
||||
Belt Conveyor (H)|ベルトコンベアー(横)
|
||||
Duct|ダクト
|
||||
Mechanical Device|機械装置
|
||||
Pile of Rubble|瓦礫の山
|
||||
Pile of Rubble|瓦礫の山
|
||||
Belt Conveyor (V)|ベルトコンベアー(縦)
|
||||
Robot Arm|ロボットアーム
|
||||
Server Machine|サーバマシン
|
||||
Meters|計器類
|
||||
Duct|ダクト
|
||||
Mechanical Device|機械装置
|
||||
Pile of Rubble|瓦礫の山
|
||||
Pile of Rubble|瓦礫の山
|
||||
Belt Conveyor (V)|ベルトコンベアー(縦)
|
||||
Robot Arm|ロボットアーム
|
||||
Server Machine|サーバマシン
|
||||
Meters|計器類
|
||||
Duct|ダクト
|
||||
Drain|排水口
|
||||
Graffiti|落書き
|
||||
Graffiti|落書き
|
||||
Monitor A|モニターA
|
||||
Monitor B|モニターB
|
||||
Large Monitor|大型モニター
|
||||
Large Monitor|大型モニター
|
||||
IV Stand|点滴スタンド
|
||||
ECG Monitor|心電図モニタ
|
||||
Sewing Mannequin|トルソー
|
||||
Rubble|瓦礫
|
||||
Operation Board A|操作盤A
|
||||
Operation Board B|操作盤B
|
||||
Operation Board C|操作盤C
|
||||
Operation Board D|操作盤D
|
||||
IV Stand|点滴スタンド
|
||||
ECG Monitor|心電図モニタ
|
||||
Sewing Mannequin|トルソー
|
||||
Broken Machine|壊れた機械
|
||||
Stairs|階段
|
||||
Stairs|階段
|
||||
Stairs|階段
|
||||
Cage|檻
|
||||
Cage|檻
|
||||
Handrail|欄干
|
||||
Handrail|欄干
|
||||
Handrail|欄干
|
||||
Stairs|階段
|
||||
Stairs|階段
|
||||
Stairs|階段
|
||||
Curtains A|カーテンA
|
||||
Curtains B|カーテンB
|
||||
Curtains C|カーテンC
|
||||
Curtains D|カーテンD
|
||||
Handrail|欄干
|
||||
Stairs|階段
|
||||
Stairs|階段
|
||||
Stairs|階段
|
||||
Curtains A|カーテンA
|
||||
Curtains B|カーテンB
|
||||
Curtains C|カーテンC
|
||||
Curtains D|カーテンD
|
||||
Emergency Alarm|非常ベル
|
||||
Spider Web|蜘蛛の巣
|
||||
Mirror|鏡
|
||||
Vase|花瓶
|
||||
Piano|ピアノ
|
||||
Piano|ピアノ
|
||||
Piano|ピアノ
|
||||
Stained Glass|ステンドグラス
|
||||
Decorative Pillar|装飾柱
|
||||
Dripping|液垂れ
|
||||
Mirror|鏡
|
||||
Lamp|電気スタンド
|
||||
Piano|ピアノ
|
||||
Piano|ピアノ
|
||||
Piano|ピアノ
|
||||
Stained Glass|ステンドグラス
|
||||
Decorative Pillar|装飾柱
|
||||
Picture Frame|写真立て
|
||||
Side Table|サイドテーブル
|
||||
Altar|祭壇
|
||||
Fireplace|暖炉
|
||||
Fireplace|暖炉
|
||||
Fireplace|暖炉
|
||||
Stuffed Doll A|ぬいぐるみA
|
||||
Decorative Pillar|装飾柱
|
||||
Book A|本A
|
||||
Book B|本B
|
||||
Glass Pieces|ガラス片
|
||||
Fireplace|暖炉
|
||||
Fireplace|暖炉
|
||||
Fireplace|暖炉
|
||||
Doll|人形
|
||||
Stuffed Doll B|ぬいぐるみB
|
||||
Beer Mug|ビールジョッキ
|
||||
Wine & Glass|ワインとグラス
|
||||
Noodle Dish|麺料理
|
||||
Bread|パン
|
||||
Banister A (V)|手すりA(縦)
|
||||
Banister A (V)|手すりA(縦)
|
||||
Banister B (V)|手すりB(縦)
|
||||
Banister B (V)|手すりB(縦)
|
||||
Meat Dish|肉料理
|
||||
Roast Chicken|ローストチキン
|
||||
Cake|ケーキ
|
||||
Fruit Bowl|果物盛り合わせ
|
||||
Banister A (V)|手すりA(縦)
|
||||
Banister A (V)|手すりA(縦)
|
||||
Banister B (V)|手すりB(縦)
|
||||
Banister B (V)|手すりB(縦)
|
||||
Plate A|皿A
|
||||
Teapot & Cup|ティーポットとカップ
|
||||
Ration|レーション
|
||||
Plate B|皿B
|
||||
Banister A (V)|手すりA(縦)
|
||||
Banister A (V)|手すりA(縦)
|
||||
Banister B (V)|手すりB(縦)
|
||||
Banister B (V)|手すりB(縦)
|
||||
Demon Statue|悪魔像
|
||||
Goddess Statue|女神像
|
||||
Soldier Statue|兵士像
|
||||
Wall Clock|柱時計
|
||||
Banister A (H)|手すりA(横)
|
||||
Banister A (H)|手すりA(横)
|
||||
Banister A (H)|手すりA(横)
|
||||
Banister A (H)|手すりA(横)
|
||||
Demon Statue|悪魔像
|
||||
Goddess Statue|女神像
|
||||
Soldier Statue|兵士像
|
||||
Wall Clock|柱時計
|
||||
Banister B (H)|手すりB(横)
|
||||
Banister B (H)|手すりB(横)
|
||||
Banister B (H)|手すりB(横)
|
||||
Banister B (H)|手すりB(横)
|
||||
Monument A|モニュメントA
|
||||
Monument B|モニュメントB
|
||||
Huge Stele|巨大な石版
|
||||
Huge Stele|巨大な石版
|
||||
Huge Stele|巨大な石版
|
||||
Huge Iron Monument|巨大プレート
|
||||
Huge Iron Monument|巨大プレート
|
||||
Huge Iron Monument|巨大プレート
|
||||
Monument A|モニュメントA
|
||||
Monument B|モニュメントB
|
||||
Huge Stele|巨大な石版
|
||||
Huge Stele|巨大な石版
|
||||
Huge Stele|巨大な石版
|
||||
Huge Iron Monument|巨大プレート
|
||||
Huge Iron Monument|巨大プレート
|
||||
Huge Iron Monument|巨大プレート
|
||||
Monument C|モニュメントC
|
||||
Monument D|モニュメントD
|
||||
Sphere Machinery|球体機械
|
||||
Sphere Machinery|球体機械
|
||||
Sphere Machinery|球体機械
|
||||
Large Machine|大型機械
|
||||
Large Machine|大型機械
|
||||
Large Machine|大型機械
|
||||
Monument C|モニュメントC
|
||||
Control Panel|コントロールパネル
|
||||
Sphere Machinery|球体機械
|
||||
Sphere Machinery|球体機械
|
||||
Sphere Machinery|球体機械
|
||||
Large Machine|大型機械
|
||||
Large Machine|大型機械
|
||||
Large Machine|大型機械
|
||||
32
www/img/tilesets/SF_Outside_A3.txt
Normal file
32
www/img/tilesets/SF_Outside_A3.txt
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
Roof A (Metal)|屋根A(金属)
|
||||
Roof B (Metal, Red Rust)|屋根B(金属・赤錆)
|
||||
Roof C (Metal, Patina)|屋根C(金属・緑青錆)
|
||||
Roof D (Barracks)|屋根D(バラック)
|
||||
Roof E (Barracks)|屋根E(バラック)
|
||||
Roof F (Factory)|屋根F(工場)
|
||||
Roor G (Ivy)|屋根G(ツタ)
|
||||
Roof H (House)|屋根H(現代住宅)
|
||||
Outer Wall A (Metal)|外壁A(金属)
|
||||
Outer Wall B (Metal, Red Rust)|外壁B(金属・赤錆)
|
||||
Outer Wall C (Metal, Patina)|外壁C(金属・緑青錆)
|
||||
Outer Wall D (Barracks)|外壁D(バラック)
|
||||
Outer Wall E (Barracks)|外壁E(バラック)
|
||||
Outer Wall F (Factory)|外壁F(工場)
|
||||
Outer Wall G (Ivy)|外壁G(ツタ)
|
||||
Outer Wall H (House)|外壁H(現代住宅)
|
||||
Roof I (House)|屋根I(現代住宅)
|
||||
Roof J (Brick)|屋根J(レンガ)
|
||||
Roof K (Brick)|屋根K(レンガ)
|
||||
Roof L (Chinese)|屋根L(中華風)
|
||||
Roof M (Blue Sheet)|屋根M(ブルーシート)
|
||||
Roof N (Wood)|屋根N(木造)
|
||||
Roof O (Brick)|屋根O(レンガ)
|
||||
Roof P (Wood)|屋根P(木造)
|
||||
Outer Wall I (House)|外壁I(現代住宅)
|
||||
Outer Wall J (Brick)|外壁J(レンガ)
|
||||
Outer Wall K (Brick)|外壁K(レンガ)
|
||||
Outer Wall L (Chinese)|外壁L(中華風)
|
||||
Outer Wall M (Blue Sheet)|外壁M(ブルーシート)
|
||||
Outer Wall N (Wood)|外壁N(木造)
|
||||
Outer Wall O (Brick)|外壁O(レンガ)
|
||||
Outer Wall P (Wood)|外壁P(木造)
|
||||
48
www/img/tilesets/SF_Outside_A4.txt
Normal file
48
www/img/tilesets/SF_Outside_A4.txt
Normal file
|
|
@ -0,0 +1,48 @@
|
|||
Wall A (Concrete)|壁A(コンクリート)
|
||||
Wall B (Concrete, Dirty)|壁B(コンクリート・汚れ)
|
||||
Wall C (Block)|壁C(ブロック)
|
||||
Wall D (Apartment)|壁D(マンション)
|
||||
Wall E (Apartment)|壁E(マンション)
|
||||
Wall F (Metal)|壁F(金属)
|
||||
Wall G (Metal, Red Rust)|壁G(金属・赤錆)
|
||||
Wall H (Metal, Patina)|壁H(金属・緑青錆)
|
||||
Wall A (Concrete)|壁A(コンクリート)
|
||||
Wall B (Concrete, Dirty)|壁B(コンクリート・汚れ)
|
||||
Wall C (Block)|壁C(ブロック)
|
||||
Wall D (Apartment)|壁D(マンション)
|
||||
Wall E (Apartment)|壁E(マンション)
|
||||
Wall F (Metal)|壁F(金属)
|
||||
Wall G (Metal, Red Rust)|壁G(金属・赤錆)
|
||||
Wall H (Metal, Patina)|壁H(金属・緑青錆)
|
||||
Wall I (Barracks)|壁I(バラック)
|
||||
Wall J (Barracks)|壁J(バラック)
|
||||
Wall K (Factory)|壁K(工場)
|
||||
Cliff A (Meadow)|崖A(草地)
|
||||
Wall L (Factory)|壁L(工場)
|
||||
Wall M (Factory)|壁M(工場)
|
||||
Wall N (Building)|壁N(ビル)
|
||||
Wall O (Brick)|壁O(レンガ)
|
||||
Wall I (Barracks)|壁I(バラック)
|
||||
Wall J (Barracks)|壁J(バラック)
|
||||
Wall K (Factory)|壁K(工場)
|
||||
Cliff A (Meadow)|崖A(草地)
|
||||
Wall L (Factory)|壁L(工場)
|
||||
Wall M (Factory)|壁M(工場)
|
||||
Wall N (Building)|壁N(ビル)
|
||||
Wall O (Brick)|壁O(レンガ)
|
||||
Wall P (Chinese)|壁P(中華風)
|
||||
Wall Q (Wire Mesh)|壁Q(金網)
|
||||
Wall R (Wire Mesh, Red Rust)|壁R(金網・赤錆)
|
||||
Wall S (Wire Mesh, Patina)|壁S(金網・緑青錆)
|
||||
Wall T (Wood)|壁T(木造)
|
||||
Wall U (Wood, Dirty)|壁U(木造・汚れ)
|
||||
Wall V (Building)|壁V(ビル)
|
||||
Wall W (Building)|壁W(ビル)
|
||||
Wall P (Chinese)|壁P(中華風)
|
||||
Wall Q (Wire Mesh)|壁Q(金網)
|
||||
Wall R (Wire Mesh, Red Rust)|壁R(金網・赤錆)
|
||||
Wall S (Wire Mesh, Patina)|壁S(金網・緑青錆)
|
||||
Wall T (Wood)|壁T(木造)
|
||||
Wall U (Wood, Dirty)|壁U(木造・汚れ)
|
||||
Wall V (Building)|壁V(ビル)
|
||||
Wall W (Building)|壁W(ビル)
|
||||
128
www/img/tilesets/SF_Outside_A5.txt
Normal file
128
www/img/tilesets/SF_Outside_A5.txt
Normal file
|
|
@ -0,0 +1,128 @@
|
|||
Darkness|暗闇
|
||||
Grid floor|格子床
|
||||
Metal Bridge (V, Left)|金属橋(縦・左)
|
||||
Metal Bridge (V, Center)|金属橋(縦・中央)
|
||||
Metal Bridge (V, Right)|金属橋(縦・右)
|
||||
Asphalt Bridge (H, Top)|アスファルト橋(横・上)
|
||||
Metal Bridge (H, Center)|金属橋(横・中央)
|
||||
Metal Bridge (H, Top)|金属橋(横・上)
|
||||
Transparent|透明
|
||||
Grid floor|格子床
|
||||
Asphalt Bridge (V, Left)|アスファルト橋(縦・左)
|
||||
Asphalt Bridge (V, Center)|アスファルト橋(縦・中央)
|
||||
Asphalt Bridge (V, Right)|アスファルト橋(縦・右)
|
||||
Asphalt Bridge (H, Bottom)|アスファルト橋(横・下)
|
||||
Asphalt Bridge (H, Center)|アスファルト橋(横・中央)
|
||||
Metal Bridge (H, Bottom)|金属橋(横・下)
|
||||
Asphalt Floor|アスファルト床
|
||||
Metal Floor A (Factory)|金属床A(工場)
|
||||
Concrete Floor|コンクリート床
|
||||
Concrete Floor (Ruins)|コンクリート床(廃墟)
|
||||
Hole|穴
|
||||
Grid floor (Ruins)|格子床(廃墟)
|
||||
Asphalt Floor (Ruins)|アスファルト床(廃墟)
|
||||
Metal Floor A (Factory, Ruins)|金属床A(工場・廃墟)
|
||||
Asphalt Floor|アスファルト床
|
||||
Metal Floor A (Factory)|金属床A(工場)
|
||||
Concrete Floor|コンクリート床
|
||||
Interior Floor A (In Body)|内装床A(体内)
|
||||
Stairs A (Asphalt, Left)|階段A(アスファルト・左)
|
||||
Stairs A (Asphalt, Center)|階段A(アスファルト・中央)
|
||||
Stairs A (Asphalt, Right)|階段A(アスファルト・右)
|
||||
Stairs A (Asphalt)|階段A(アスファルト)
|
||||
Meadow|草地
|
||||
Desert|砂地
|
||||
Wood Floor A|木の床A
|
||||
Wood Floor A (Ruins)|木の床A(廃墟)
|
||||
Asphalt Floor (Dirty)|アスファルト床(汚れ)
|
||||
Asphalt Floor (Dirty, Ruins)|アスファルト床(汚れ・廃墟)
|
||||
Metal Floor A (Factory, Rust)|金属床A(工場・サビ)
|
||||
Interior Floor B (Artery)|内装床B(動脈)
|
||||
Bumpy Tile A|点字ブロックA
|
||||
Bumpy Tile B|点字ブロックB
|
||||
Bumpy Tile C|点字ブロックC
|
||||
Bumpy Tile C (Ruins)|点字ブロックC(廃墟)
|
||||
Stairs B (Metal, Left)|階段B(金属・左)
|
||||
Stairs B (Metal, Center)|階段B(金属・中央)
|
||||
Stairs B (Metal, Right)|階段B(金属・右)
|
||||
Stairs B (Metal)|階段B(金属)
|
||||
Interior Floor C (Green Resin)|内装床C(緑樹脂)
|
||||
Interior Floor D (Tile)|内装床D(タイル)
|
||||
Interior Floor D (Tile, Ruins)|内装床D(タイル・廃墟)
|
||||
Interior Floor E (Decoration)|内装床E(装飾)
|
||||
Bush|茂み
|
||||
Waste Land|荒地
|
||||
Wood Floor B|木の床B
|
||||
Wood Floor B (Ruins)|木の床B(廃墟)
|
||||
Stairs C (Meadow, Left)|階段C(草地・左)
|
||||
Stairs C (Meadow, Center)|階段C(草地・中央)
|
||||
Stairs C (Meadow, Right)|階段C(草地・右)
|
||||
Stairs C (Meadow)|階段C(草地)
|
||||
Stairs D (Wood, Left)|階段D(木製・左)
|
||||
Stairs D (Wood, Center)|階段D(木製・中央)
|
||||
Stairs D (Wood, Right)|階段D(木製・右)
|
||||
Stairs D (Wood)|階段D(木製)
|
||||
Cobblestones A|石畳A
|
||||
Cobblestones B|石畳B
|
||||
Cobblestones C|石畳C
|
||||
Cobblestones D|石畳D
|
||||
Interior Floor F (Checkered)|内装床F(市松)
|
||||
Interior Floor F (Checkered, Ruins)|内装床F(市松・廃墟)
|
||||
Metal Floor B|金属床B
|
||||
Metal Floor B (Rust, Ruins)|金属床B(サビ・廃墟)
|
||||
Stairs E (Carpet, Left)|階段E(じゅうたん・左)
|
||||
Stairs E (Carpet, Center)|階段E(じゅうたん・中央)
|
||||
Stairs E (Carpet, Right)|階段E(じゅうたん・右)
|
||||
Stairs E (Carpet)|階段E(じゅうたん)
|
||||
Stairs F (Desert, Left)|階段F(砂地・左)
|
||||
Stairs F (Desert, Center)|階段F(砂地・中央)
|
||||
Stairs F (Desert, Right)|階段F(砂地・右)
|
||||
Stairs F (Desert)|階段F(砂地)
|
||||
Mark Floor A|マーク床A
|
||||
Mark Floor B|マーク床B
|
||||
Mark Floor C|マーク床C
|
||||
Mark Floor D|マーク床D
|
||||
Mark Floor E|マーク床E
|
||||
Mark Floor E (Ruins)|マーク床E(廃墟)
|
||||
Mark Floor F (Off)|マーク床F(消)
|
||||
Mark Floor F|マーク床F
|
||||
Neon Floor|ネオン床
|
||||
Interior Floor G (Tile Carpet)|内装床G(タイルカーペット)
|
||||
Interior Floor G (Tile Carpet, Ruins)|内装床G(タイルカーペット・廃墟)
|
||||
Ledge (Dirt)|段差(土)
|
||||
Ledge (Dirt)|段差(土)
|
||||
Ledge (Dirt)|段差(土)
|
||||
Ledge (Dirt)|段差(土)
|
||||
Ledge (Dirt)|段差(土)
|
||||
Marble Floor|大理石床
|
||||
Interior Floor H (Linoleum)|内装床H(リノリウム)
|
||||
Interior Floor H (Linoleum, Ruins)|内装床H(リノリウム・廃墟)
|
||||
Ledge (Dirt)|段差(土)
|
||||
Ledge (Dirt)|段差(土)
|
||||
Ledge (Dirt)|段差(土)
|
||||
Ledge (Dirt)|段差(土)
|
||||
Ledge (Dirt)|段差(土)
|
||||
Stairs G (Tile Carpet, Left)|階段G(タイルカーペット・左)
|
||||
Stairs G (Tile Carpet, Center)|階段G(タイルカーペット・中央)
|
||||
Stairs G (Tile Carpet, Right)|階段G(タイルカーペット・右)
|
||||
Stairs G (Tile Carpet)|階段G(タイルカーペット)
|
||||
Cobblestones A (Ruins)|石畳A(廃墟)
|
||||
Ledge (Dirt)|段差(土)
|
||||
Ledge (Dirt)|段差(土)
|
||||
Ledge (Dirt)|段差(土)
|
||||
Stairs H (Linoleum, Left)|階段H(リノリウム・左)
|
||||
Stairs H (Linoleum, Center)|階段H(リノリウム・中央)
|
||||
Stairs H (Linoleum, Right)|階段H(リノリウム・右)
|
||||
Stairs H (Linoleum)|階段H(リノリウム)
|
||||
Cobblestones C (Ruins)|石畳C(廃墟)
|
||||
Cliff (Dirt)|崖(土)
|
||||
Cliff (Dirt)|崖(土)
|
||||
Cliff (Dirt)|崖(土)
|
||||
Marble Floor (Ruins)|大理石床(廃墟)
|
||||
Wood Floor C|木の床C
|
||||
Wood Floor C (Ruins)|木の床C(廃墟)
|
||||
Metal Floor C (Machine)|金属床C(機械)
|
||||
Metal Floor C (Machine, Ruins)|金属床C(機械・廃墟)
|
||||
Cliff (Dirt)|崖(土)
|
||||
Cliff (Dirt)|崖(土)
|
||||
Cliff (Dirt)|崖(土)
|
||||
256
www/img/tilesets/SF_Outside_B.txt
Normal file
256
www/img/tilesets/SF_Outside_B.txt
Normal file
|
|
@ -0,0 +1,256 @@
|
|||
Transparent|透明
|
||||
Neon Shop Sign (Weapon)|ネオン看板(武器屋)
|
||||
Neon Shop Sign (Armor)|ネオン看板(防具屋)
|
||||
Neon Shop Sign (Item)|ネオン看板(アイテム屋)
|
||||
Neon Shop Sign (Pharmacy)|ネオン看板(薬屋)
|
||||
Neon Shop Sign (Cafe)|ネオン看板(酒場)
|
||||
Neon Shop Sign (Inn)|ネオン看板(宿屋)
|
||||
Neon Shop Sign (Market)|ネオン看板(マーケット)
|
||||
Metal Shop Sign (Weapon)|金属看板(武器屋)
|
||||
Metal Shop Sign (Armor)|金属看板(防具屋)
|
||||
Metal Shop Sign (Item)|金属看板(アイテム屋)
|
||||
Metal Shop Sign (Pharmacy)|金属看板(薬屋)
|
||||
Metal Shop Sign (Cafe)|金属看板(酒場)
|
||||
Metal Shop Sign (Inn)|金属看板(宿屋)
|
||||
Metal Shop Sign (Firearm)|金属看板(銃器屋)
|
||||
Metal Shop Sign (Blank)|金属看板(無地)
|
||||
Asphalt Bridge (V)|アスファルトの橋(縦)
|
||||
Asphalt Bridge (H)|アスファルトの橋(横)
|
||||
Stone Bridge (V)|石の橋(縦)
|
||||
Stone Bridge (H)|石の橋(横)
|
||||
Metal Bridge A (V)|金属の橋A(縦)
|
||||
Metal Bridge A (H)|金属の橋A(横)
|
||||
Metal Bridge B (V)|金属の橋B(縦)
|
||||
Metal Bridge B (H)|金属の橋B(横)
|
||||
Bridge Spar A (Asphalt, Center A)|橋げたA(アスファルト・中央A)
|
||||
Bridge Spar A (Asphalt, Left)|橋げたA(アスファルト・左)
|
||||
Bridge Spar A (Asphalt, Center B)|橋げたA(アスファルト・中央B)
|
||||
Bridge Spar A (Asphalt, Right)|橋げたA(アスファルト・右)
|
||||
Bridge Spar B (Metal, Center A)|橋げたB(金属・中央A)
|
||||
Bridge Spar B (Metal, Left)|橋げたB(金属・左)
|
||||
Bridge Spar B (Metal, Center B)|橋げたB(金属・中央B)
|
||||
Bridge Spar B (Metal, Right)|橋げたB(金属・右)
|
||||
White Line|白線
|
||||
White Line|白線
|
||||
White Line|白線
|
||||
White Line|白線
|
||||
White Line|白線
|
||||
Yellow & Black Line|黄黒線
|
||||
Yellow & Black Line|黄黒線
|
||||
Yellow & Black Line|黄黒線
|
||||
White Line|白線
|
||||
Traffic Lights (Car)|信号機(車)
|
||||
Traffic Lights (Pedestrian)|信号機(歩行者)
|
||||
Entrance A|入口A
|
||||
White Line (Crosswalk)|白線(横断歩道)
|
||||
Yellow & Black Line|黄黒線
|
||||
Traffic Cone|通行止めコーン
|
||||
Yellow & Black Line|黄黒線
|
||||
White Line|白線
|
||||
Traffic Lights (Car)|信号機(車)
|
||||
Traffic Lights (Walker)|信号機(歩行者)
|
||||
Entrance B|入口B
|
||||
White Line (Crosswalk)|白線(横断歩道)
|
||||
Yellow & Black Line|黄黒線
|
||||
Yellow & Black Line|黄黒線
|
||||
Yellow & Black Line|黄黒線
|
||||
Window A|窓A
|
||||
Window B|窓B
|
||||
Window C|窓C
|
||||
Window D|窓D
|
||||
Window E|窓E
|
||||
Window F|窓F
|
||||
Window G|窓G
|
||||
Window H|窓H
|
||||
Midsize Window A|中型窓A
|
||||
Midsize Window B|中型窓B
|
||||
Midsize Window C|中型窓C
|
||||
Midsize Window D|中型窓D
|
||||
Midsize Window E|中型窓E
|
||||
Midsize Window F|中型窓F
|
||||
Midsize Window G|中型窓G
|
||||
Midsize Window H|中型窓H
|
||||
Midsize Window A|中型窓A
|
||||
Midsize Window B|中型窓B
|
||||
Midsize Window C|中型窓C
|
||||
Midsize Window D|中型窓D
|
||||
Midsize Window E|中型窓E
|
||||
Midsize Window F|中型窓F
|
||||
Midsize Window G|中型窓G
|
||||
Midsize Window H|中型窓H
|
||||
Neon Shop Sign (V)|ネオン看板(縦)
|
||||
Neon Shop Sign (V)|ネオン看板(縦)
|
||||
Neon Shop Sign (V)|ネオン看板(縦)
|
||||
Neon Shop Sign (H)|ネオン看板(横)
|
||||
Neon Shop Sign (H)|ネオン看板(横)
|
||||
Street Light A|街灯A
|
||||
Street Light B|街灯B
|
||||
Stained Glass Window|ステンドグラス
|
||||
Neon Shop Sign (V)|ネオン看板(縦)
|
||||
Neon Shop Sign (V)|ネオン看板(縦)
|
||||
Neon Shop Sign (V)|ネオン看板(縦)
|
||||
Neon Shop Sign (H)|ネオン看板(横)
|
||||
Neon Shop Sign (H)|ネオン看板(横)
|
||||
Street Light A|街灯A
|
||||
Street Light B|街灯B
|
||||
Stained Glass Window|ステンドグラス
|
||||
Neon Shop Sign (V)|ネオン看板(縦)
|
||||
Neon Shop Sign (V)|ネオン看板(縦)
|
||||
Neon Shop Sign (V)|ネオン看板(縦)
|
||||
Neon Shop Sign (H)|ネオン看板(横)
|
||||
Neon Shop Sign (H)|ネオン看板(横)
|
||||
Stacked Crates|積まれた木箱
|
||||
Shipping Container|コンテナ
|
||||
Stacked Cardboard|積まれたダンボール
|
||||
Chimney A|煙突A
|
||||
Chimney B|煙突B
|
||||
Chimney C|煙突C
|
||||
Exhaust Port Wall|壁面用排気口
|
||||
Roof Window|屋根用出窓
|
||||
Stacked Crates|積まれた木箱
|
||||
Shipping Container|コンテナ
|
||||
Stacked Cardboard Boxes|積まれたダンボール
|
||||
Wall Poster|張り紙
|
||||
Signboard A|看板A
|
||||
Signboard C|看板C
|
||||
Digital Signage A|電子看板A
|
||||
Digital Signage C|電子看板C
|
||||
Neon Shop Sign (CASINO)|ネオン看板(カジノ)
|
||||
Neon Shop Sign (CASINO)|ネオン看板(カジノ)
|
||||
Small Crane|小型クレーン
|
||||
Poster|ポスター
|
||||
Signboard B|看板B
|
||||
Digital Signage B|電子看板B
|
||||
Digital Signage B|電子看板B
|
||||
Digital Signage C|電子看板C
|
||||
Iron Materials|鉄資材
|
||||
Helmet & Tool|ヘルメットと工具
|
||||
Small Crane|小型クレーン
|
||||
Crate|木箱
|
||||
Shipping Container|コンテナ
|
||||
Cardboard Box|ダンボール
|
||||
Barrel|樽
|
||||
Oil Drum|ドラム缶
|
||||
Garbage Can|ゴミ箱
|
||||
Sorted Waste Bins|分別ゴミ箱
|
||||
Sorted Waste Bins|分別ゴミ箱
|
||||
Plant A|植物A
|
||||
Plant B|植物B
|
||||
Plant C|植物C
|
||||
Vending Machine|自動販売機
|
||||
ATM|ATM
|
||||
Tree|木
|
||||
Roadside Tree|街路樹
|
||||
Utility Pole|電柱
|
||||
Plant A|植物A
|
||||
Plant B|植物B
|
||||
Plant C|植物C
|
||||
Vending Machine|自動販売機
|
||||
ATM|ATM
|
||||
Tree|木
|
||||
Avenue Tree|街路樹
|
||||
Utility Pole|電柱
|
||||
Public Phone|公衆電話
|
||||
Machine Device|機械端末
|
||||
Planter (Flower)|プランター(花)
|
||||
Planter (Plant)|プランター(植物)
|
||||
Potted Plant|植木鉢
|
||||
Tree (Loop)|木(ループ)
|
||||
Tombstone (Cross)|墓石(十字架)
|
||||
Tombstone (Plaque)|墓石(プレート)
|
||||
Neon Tube|ネオン管
|
||||
Neon Tube|ネオン管
|
||||
Machine A|機械A
|
||||
Machine B|機械B
|
||||
Machine C|機械C
|
||||
Barricade (No Entry)|バリケード(通行禁止)
|
||||
Bar (No Entry)|バー(通行禁止)
|
||||
Bar (No Entry)|バー(通行禁止)
|
||||
Neon Tube|ネオン管
|
||||
Neon Tube|ネオン管
|
||||
Outdoor Air Intake Unit|室外機
|
||||
Waste|廃棄物
|
||||
Scrap Metal|スクラップ
|
||||
Fissures A|亀裂A
|
||||
Fissures B|亀裂B
|
||||
Fissures C|亀裂C
|
||||
Neon Tube|ネオン管
|
||||
Neon Tube|ネオン管
|
||||
Air Vent A|通風口A
|
||||
Air Vent B|通風口B
|
||||
Shutter|シャッター
|
||||
Fissures A|亀裂A
|
||||
Fissures B|亀裂B
|
||||
Fissures C|亀裂C
|
||||
Drain|排水口
|
||||
Guardrail|ガードレール
|
||||
Timetable|時刻表
|
||||
Piled Up Tires|積まれたタイヤ
|
||||
Small Fuel Tank|小型燃料タンク
|
||||
Car (White)|車(白)
|
||||
Car (White)|車(白)
|
||||
Manhole|マンホール
|
||||
Bus|バス
|
||||
Bus|バス
|
||||
Truck|トラック
|
||||
Truck|トラック
|
||||
Wrecked Car|壊れた車
|
||||
Car (Black)|車(黒)
|
||||
Car (Black)|車(黒)
|
||||
Vent|通気口
|
||||
Bus|バス
|
||||
Bus|バス
|
||||
Truck|トラック
|
||||
Truck|トラック
|
||||
Wrecked Car|壊れた車
|
||||
Car (Red)|車(赤)
|
||||
Car (Red)|車(赤)
|
||||
Oil Drum (Leak)|ドラム缶(液漏れ)
|
||||
Food Stalls|露店(食べ物)
|
||||
Food Stalls|露店(食べ物)
|
||||
Food Stalls|露店(食べ物)
|
||||
Stall Goods A|露店商品A
|
||||
Stairs A (Up)|階段A(上り)
|
||||
Stairs B (Up)|階段B(上り)
|
||||
Stairs C (Up)|階段C(上り)
|
||||
Stairs D (Up)|階段D(上り)
|
||||
Food Stalls|露店(食べ物)
|
||||
Food Stalls|露店(食べ物)
|
||||
Food Stalls|露店(食べ物)
|
||||
Stall Goods B|露店商品B
|
||||
Stairs A (Down)|階段A(下り)
|
||||
Stairs B (Down)|階段B(下り)
|
||||
Stairs C (Down)|階段C(下り)
|
||||
Stairs D (Down)|階段D(下り)
|
||||
Food Stalls|露店(食べ物)
|
||||
Food Stalls|露店(食べ物)
|
||||
Food Stalls|露店(食べ物)
|
||||
Stall Goods C|露店商品C
|
||||
Metal Ladder|鉄ばしご
|
||||
Metal Stairs|金属階段
|
||||
Rope|ロープ
|
||||
Net|ネット
|
||||
Junk Stalls|露店(ジャンク)
|
||||
Junk Stalls|露店(ジャンク)
|
||||
Junk Stalls|露店(ジャンク)
|
||||
Stall Goods D|露店商品D
|
||||
Metal Ladder|鉄ばしご
|
||||
Metal Stairs|金属階段
|
||||
Rope|ロープ
|
||||
Net|ネット
|
||||
Junk Stalls|露店(ジャンク)
|
||||
Junk Stalls|露店(ジャンク)
|
||||
Junk Stalls|露店(ジャンク)
|
||||
Stall Goods E|露店商品E
|
||||
Metal Ladder|鉄ばしご
|
||||
Metal Stairs|金属階段
|
||||
Rope|ロープ
|
||||
Net|ネット
|
||||
Junk Stalls|露店(ジャンク)
|
||||
Junk Stalls|露店(ジャンク)
|
||||
Junk Stalls|露店(ジャンク)
|
||||
Stall Goods F|露店商品F
|
||||
Hole A (Metal Ladder)|穴A(鉄ばしご)
|
||||
Hole B (Metal Stairs)|穴B(金属階段)
|
||||
Hole C (Rope)|穴C(ロープ)
|
||||
Hole|穴
|
||||
256
www/img/tilesets/SF_Outside_C.txt
Normal file
256
www/img/tilesets/SF_Outside_C.txt
Normal file
|
|
@ -0,0 +1,256 @@
|
|||
Fountain A|噴水A
|
||||
Fountain A|噴水A
|
||||
Fountain B|噴水B
|
||||
Fountain B|噴水B
|
||||
Slide|滑り台
|
||||
Slide|滑り台
|
||||
Exercise Bar|鉄棒
|
||||
Drinking Fountain|水飲み場
|
||||
Fountain A|噴水A
|
||||
Fountain A|噴水A
|
||||
Fountain B|噴水B
|
||||
Fountain B|噴水B
|
||||
Slide|滑り台
|
||||
Slide|滑り台
|
||||
Water Well Pump|ポンプ井戸
|
||||
Garbage Dumpster|ごみ収集箱
|
||||
Fountain C|噴水C
|
||||
Fountain C|噴水C
|
||||
Fountain C|噴水C
|
||||
Bench A|ベンチA
|
||||
Bench A|ベンチA
|
||||
Swing|ブランコ
|
||||
Shop Canopy|店用天蓋
|
||||
Barbed Wire|有刺鉄線
|
||||
Fountain C|噴水C
|
||||
Fountain C|噴水C
|
||||
Fountain C|噴水C
|
||||
Bench B|ベンチB
|
||||
Bench B|ベンチB
|
||||
Swing|ブランコ
|
||||
Shop Canopy|店用天蓋
|
||||
Barbed Wire|有刺鉄線
|
||||
Grass A|草A
|
||||
Grass B|草B
|
||||
Hole|穴
|
||||
Small Stones|小石
|
||||
Flower Bed|花壇
|
||||
Flower Bed|花壇
|
||||
Flower Bed|花壇
|
||||
Barbed Wire|有刺鉄線
|
||||
Flower|花
|
||||
Cage|檻
|
||||
Cage|檻
|
||||
Graffiti|落書き
|
||||
Graffiti|落書き
|
||||
Barbed Wire|有刺鉄線
|
||||
Barbed Wire|有刺鉄線
|
||||
Barbed Wire|有刺鉄線
|
||||
Demon Statue|悪魔像
|
||||
Goddess Statue|女神像
|
||||
Metal Fence|金属フェンス
|
||||
Metal Fence|金属フェンス
|
||||
Metal Fence|金属フェンス
|
||||
Gutter|側溝
|
||||
Gutter|側溝
|
||||
Gutter|側溝
|
||||
Demon Statue|悪魔像
|
||||
Goddess Statue|女神像
|
||||
Metal Fence|金属フェンス
|
||||
Warning Plate (Keep Out)|警告プレート(KEEP OUT)
|
||||
Metal Fence|金属フェンス
|
||||
Gutter|側溝
|
||||
Postal Box|ポスト
|
||||
Gutter|側溝
|
||||
Soldier Statue|兵士像
|
||||
Warning Plate (Biohazard Mark)|警告プレート(バイオハザードマーク)
|
||||
Metal Fence|金属フェンス
|
||||
Metal Fence|金属フェンス
|
||||
Metal Fence|金属フェンス
|
||||
Gutter|側溝
|
||||
Gutter|側溝
|
||||
Gutter|側溝
|
||||
Soldier Statue|兵士像
|
||||
Pillar A (Asphalt)|柱A(アスファルト)
|
||||
Pillar B (Metal)|柱B(金属)
|
||||
Pillar C (Machine)|柱C(機械)
|
||||
Pillar D (Decoration)|柱D(装飾)
|
||||
Pillar E (Metal)|柱E(金属)
|
||||
Pillar F (Brick)|柱F(レンガ)
|
||||
Food Waste|生ゴミ
|
||||
Warning Plate (Radioactivity Mark)|警告プレート(放射能マーク)
|
||||
Pillar A (Asphalt)|柱A(アスファルト)
|
||||
Pillar B (Metal)|柱B(金属)
|
||||
Pillar C (Machine)|柱C(機械)
|
||||
Pillar D (Decoration)|柱D(装飾)
|
||||
Pillar E (Metal)|柱E(金属)
|
||||
Pillar F (Brick)|柱F(レンガ)
|
||||
Mysterious Liquid|謎の液体
|
||||
Warning Plate (Exclamation Mark)|警告プレート(!マーク)
|
||||
Broken Pillar A (Asphalt)|折れた柱A(アスファルト)
|
||||
Broken Pillar B (Metal)|折れた柱B(金属)
|
||||
Broken Pillar C (Machine)|折れた柱C(機械)
|
||||
Broken Pillar D (Decoration)|折れた柱D(装飾)
|
||||
Broken Pillar E (Metal)|折れた柱E(金属)
|
||||
Broken Pillar F (Brick)|折れた柱F(レンガ)
|
||||
Fire Hydrant|消火栓
|
||||
Monument A|モニュメントA
|
||||
Monument B|モニュメントB
|
||||
Huge Stele|巨大な石版
|
||||
Huge Stele|巨大な石版
|
||||
Huge Stele|巨大な石版
|
||||
Huge Iron Monument|巨大プレート
|
||||
Huge Iron Monument|巨大プレート
|
||||
Huge Iron Monument|巨大プレート
|
||||
Monument A|モニュメントA
|
||||
Monument B|モニュメントB
|
||||
Huge Stele|巨大な石版
|
||||
Huge Stele|巨大な石版
|
||||
Huge Stele|巨大な石版
|
||||
Huge Iron Monument|巨大プレート
|
||||
Huge Iron Monument|巨大プレート
|
||||
Huge Iron Monument|巨大プレート
|
||||
Monument C|モニュメントC
|
||||
Monument D|モニュメントD
|
||||
Sphere Machinery|球体機械
|
||||
Sphere Machinery|球体機械
|
||||
Sphere Machinery|球体機械
|
||||
Large Machine|大型機械
|
||||
Large Machine|大型機械
|
||||
Large Machine|大型機械
|
||||
Monument C|モニュメントC
|
||||
Control Panel|コントロールパネル
|
||||
Sphere Machinery|球体機械
|
||||
Sphere Machinery|球体機械
|
||||
Sphere Machinery|球体機械
|
||||
Large Machine|大型機械
|
||||
Large Machine|大型機械
|
||||
Large Machine|大型機械
|
||||
Wall A|壁A
|
||||
Wall A|壁A
|
||||
Wall A|壁A
|
||||
Decorative Pillar A|装飾柱A
|
||||
Arch A|門A
|
||||
Arch A|門A
|
||||
Arch A|門A
|
||||
Decorative Pillar B|装飾柱B
|
||||
Wall A|壁A
|
||||
Wall A|壁A
|
||||
Wall A|壁A
|
||||
Decorative Pillar A|装飾柱A
|
||||
Arch A|門A
|
||||
Arch A|門A
|
||||
Arch A|門A
|
||||
Decorative Pillar B|装飾柱B
|
||||
Wall A|壁A
|
||||
Wall A|壁A
|
||||
Wall A|壁A
|
||||
Decorative Pillar A|装飾柱A
|
||||
Arch A|門A
|
||||
Arch A|門A
|
||||
Arch A|門A
|
||||
Decorative Pillar B|装飾柱B
|
||||
Wall B (Topside)|壁B(上面)
|
||||
Wall B (Topside)|壁B(上面)
|
||||
Wall B (Topside)|壁B(上面)
|
||||
Spire|尖塔
|
||||
Clock Tower|時計塔
|
||||
Clock Tower|時計塔
|
||||
Clock Tower|時計塔
|
||||
Wall A Ceiling|壁A天井
|
||||
Wall B (Topside)|壁B(上面)
|
||||
Wall B (Topside)|壁B(上面)
|
||||
Wall B (Topside)|壁B(上面)
|
||||
Spire|尖塔
|
||||
Clock Tower|時計塔
|
||||
Clock Tower|時計塔
|
||||
Clock Tower|時計塔
|
||||
Decorative Pillar A (Front)|装飾柱A(手前)
|
||||
Wall B (Topside)|壁B(上面)
|
||||
Wall B (Topside)|壁B(上面)
|
||||
Wall B (Topside)|壁B(上面)
|
||||
Spire|尖塔
|
||||
Clock Tower|時計塔
|
||||
Clock Tower|時計塔
|
||||
Clock Tower|時計塔
|
||||
Decorative Pillar B (Front)|装飾柱B(手前)
|
||||
Wall B|壁B
|
||||
Wall B|壁B
|
||||
Wall B|壁B
|
||||
Spire|尖塔
|
||||
Arch B|門B
|
||||
Arch B|門B
|
||||
Arch B|門B
|
||||
Iron Fence B|鉄柵B
|
||||
Wall B|壁B
|
||||
Wall B|壁B
|
||||
Wall B|壁B
|
||||
Spire|尖塔
|
||||
Arch B|門B
|
||||
Arch B|門B
|
||||
Arch B|門B
|
||||
Gate|門扉
|
||||
Wall B|壁B
|
||||
Wall B|壁B
|
||||
Wall B|壁B
|
||||
Spire|尖塔
|
||||
Arch B|門B
|
||||
Arch B|門B
|
||||
Arch B|門B
|
||||
Gate|門扉
|
||||
Rooftop Railing|屋上用手すり
|
||||
Rooftop Railing|屋上用手すり
|
||||
Rooftop Railing|屋上用手すり
|
||||
Iron Fence A|鉄柵A
|
||||
Tank|戦車
|
||||
Tank|戦車
|
||||
Helicopter|ヘリコプター
|
||||
Helicopter|ヘリコプター
|
||||
Rooftop Railing|屋上用手すり
|
||||
Round Clock|丸時計
|
||||
Rooftop Railing|屋上用手すり
|
||||
Iron Fence A|鉄柵A
|
||||
Tank|戦車
|
||||
Tank|戦車
|
||||
Helicopter|ヘリコプター
|
||||
Helicopter|ヘリコプター
|
||||
Rooftop Railing|屋上用手すり
|
||||
Rooftop Railing|屋上用手すり
|
||||
Rooftop Railing|屋上用手すり
|
||||
Iron Fence A|鉄柵A
|
||||
Rooftop Billboard B|屋上看板B
|
||||
Rooftop Billboard B|屋上看板B
|
||||
Food Cart|屋台
|
||||
Food Cart|屋台
|
||||
Convenience Store|コンビニエンスストア
|
||||
Convenience Store|コンビニエンスストア
|
||||
Convenience Store|コンビニエンスストア
|
||||
Steel Tower|鉄塔
|
||||
Rooftop Billboard A|屋上看板A
|
||||
Roof|屋根
|
||||
Roof|屋根
|
||||
Roof|屋根
|
||||
Convenience Store|コンビニエンスストア
|
||||
Convenience Store|コンビニエンスストア
|
||||
Convenience Store|コンビニエンスストア
|
||||
Steel Tower|鉄塔
|
||||
Water Storage Tank|貯水タンク
|
||||
Roof|屋根
|
||||
Roof|屋根
|
||||
Roof|屋根
|
||||
Bus Waiting Area|待合所
|
||||
Bus Waiting Area|待合所
|
||||
Station Kiosk|駅の売店
|
||||
Steel Tower|鉄塔
|
||||
Water Storage Tank|貯水タンク
|
||||
Roof|屋根
|
||||
Roof|屋根
|
||||
Roof|屋根
|
||||
Bus Waiting Area|待合所
|
||||
Bus Waiting Area|待合所
|
||||
Station Kiosk|駅の売店
|
||||
Roof Detail|屋根飾り
|
||||
Roof|屋根
|
||||
Roof|屋根
|
||||
Roof|屋根
|
||||
Roof|屋根
|
||||
16
www/img/tilesets/World_A1.txt
Normal file
16
www/img/tilesets/World_A1.txt
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
Sea|海
|
||||
Deep Sea|深い海
|
||||
Rock Shoal|岩礁
|
||||
Icebergs|氷山
|
||||
Poison Swamp|毒の沼
|
||||
Dead Trees|枯れ木
|
||||
Lava|溶岩
|
||||
Lava Bubbles|溶岩の泡
|
||||
Pond|池
|
||||
Boulder|岩
|
||||
Frozen Sea|凍った海
|
||||
Whirlpool|渦
|
||||
Land's End|大地の境界
|
||||
Endless Waterfall|下界に落ちる滝
|
||||
Cloud (Land's End)|雲(大地の境界)
|
||||
Cloud|雲
|
||||
32
www/img/tilesets/World_A2.txt
Normal file
32
www/img/tilesets/World_A2.txt
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
Grassland A|草原A
|
||||
Grassland A (Dark)|草原A(濃)
|
||||
Grassland B|草原B
|
||||
Grassland B (Dark)|草原B(濃)
|
||||
Forest|森
|
||||
Forest (Conifer)|森(針葉樹)
|
||||
Hill (Grass)|丘(草)
|
||||
Mountain (Dirt)|山(土)
|
||||
Wasteland A|荒れ地A
|
||||
Wasteland B|荒れ地B
|
||||
Dirt Field A|土肌A
|
||||
Dirt Field B|土肌B
|
||||
Forest (Dead Trees)|森(枯れ木)
|
||||
Road (Dirt)|道(土)
|
||||
Hill (Dirt)|丘(土)
|
||||
Mountain (Rock)|山(岩)
|
||||
Desert A|砂漠A
|
||||
Desert B|砂漠B
|
||||
Rocky Land A|岩地A
|
||||
Rocky Land B (Lava)|岩地B(溶岩)
|
||||
Forest (Palm Trees)|森(ヤシの木)
|
||||
Road (Paved)|道(舗装)
|
||||
Hill (Sandstone)|丘(砂岩)
|
||||
Mountain (Sandstone)|山(砂岩)
|
||||
Snowfield|雪原
|
||||
Hill (Snow)|丘(雪)
|
||||
Clouds|雲
|
||||
Large Clouds|大きな雲
|
||||
Forest (Snow)|森(雪)
|
||||
Pit|穴
|
||||
Hill (Rock)|丘(岩)
|
||||
Mountain (Snow)|山(雪)
|
||||
256
www/img/tilesets/World_B.txt
Normal file
256
www/img/tilesets/World_B.txt
Normal file
|
|
@ -0,0 +1,256 @@
|
|||
Transparent|透明
|
||||
Sign|立て札
|
||||
Pier (H)|桟橋(横)
|
||||
Pier (V)|桟橋(縦)
|
||||
Pond|池
|
||||
Oasis|オアシス
|
||||
Pond (Ice)|池(氷)
|
||||
Beanstalk|豆の木
|
||||
Tent|テント
|
||||
Igloo|氷の家
|
||||
Pyramid|ピラミッド
|
||||
Giant Tree|大樹
|
||||
Giant Tree (Snow)|大樹(雪)
|
||||
Dirt|土砂
|
||||
Avalanche|雪崩
|
||||
Beanstalk|豆の木
|
||||
Cave A|洞窟A
|
||||
Cave B|洞窟B
|
||||
Cave (Collapsed)|洞窟(土砂崩れ)
|
||||
Mine|坑道
|
||||
Tunnel|トンネル
|
||||
Tunnel (Blocked)|トンネル(通行止め)
|
||||
Shrine|ほこら
|
||||
Shrine (Snow)|ほこら(雪)
|
||||
Crater|クレーター
|
||||
Trail|山道
|
||||
Rock Mountain|岩山
|
||||
Rock Mountain|岩山
|
||||
Rock Mountain (Sandstone)|岩山(砂岩)
|
||||
Rock Mountain (Sandstone)|岩山(砂岩)
|
||||
Rock Mountain (Snow)|岩山(雪)
|
||||
Rock Mountain (Snow)|岩山(雪)
|
||||
Volcano Crater (Lava)|火口(溶岩)
|
||||
Volcano Crater (Lava)|火口(溶岩)
|
||||
Rock Mountain|岩山
|
||||
Rock Mountain|岩山
|
||||
Rock Mountain (Sandstone)|岩山(砂岩)
|
||||
Rock Mountain (Sandstone)|岩山(砂岩)
|
||||
Rock Mountain (Snow)|岩山(雪)
|
||||
Rock Mountain (Snow)|岩山(雪)
|
||||
Volcano Crater|火口
|
||||
Volcano Crater|火口
|
||||
Rock Mountain|岩山
|
||||
Rock Mountain|岩山
|
||||
Rock Mountain (Sandstone)|岩山(砂岩)
|
||||
Rock Mountain (Sandstone)|岩山(砂岩)
|
||||
Rock Mountain (Snow)|岩山(雪)
|
||||
Rock Mountain (Snow)|岩山(雪)
|
||||
Volcano|火山
|
||||
Volcano|火山
|
||||
Rock Mountain|岩山
|
||||
Rock Mountain|岩山
|
||||
Rock Mountain (Sandstone)|岩山(砂岩)
|
||||
Rock Mountain (Sandstone)|岩山(砂岩)
|
||||
Rock Mountain (Snow)|岩山(雪)
|
||||
Rock Mountain (Snow)|岩山(雪)
|
||||
Town A|町A
|
||||
Town A|町A
|
||||
Town B|町B
|
||||
Town B|町B
|
||||
Village A|村A
|
||||
Village A|村A
|
||||
Village B|村B
|
||||
House (Town)|家(町)
|
||||
Town C|町C
|
||||
Town D|町D
|
||||
Village C|村C
|
||||
Village D|村D
|
||||
Town E (Desert)|町E(砂漠)
|
||||
Town E (Desert)|町E(砂漠)
|
||||
Town F (Desert)|町F(砂漠)
|
||||
House (Village)|家(村)
|
||||
Town A (Snow)|町A(雪)
|
||||
Town A (Snow)|町A(雪)
|
||||
Town B (Snow)|町B(雪)
|
||||
Town B (Snow)|町B(雪)
|
||||
Town G (Desert)|町G(砂漠)
|
||||
Town G (Desert)|町G(砂漠)
|
||||
Large Tent|大きなテント
|
||||
House (Desert)|家(砂漠)
|
||||
Town C (Snow)|町C(雪)
|
||||
Town D (Snow)|町D(雪)
|
||||
Village C (Snow)|村C(雪)
|
||||
Village D (Snow)|村D(雪)
|
||||
Village A (Snow)|村A(雪)
|
||||
Village A (Snow)|村A(雪)
|
||||
Village B (Snow)|村B(雪)
|
||||
House (Snow)|家(雪)
|
||||
Fortress City |城塞都市
|
||||
Fortress City |城塞都市
|
||||
Fortress City (Snow)|城塞都市(雪)
|
||||
Fortress City (Snow)|城塞都市(雪)
|
||||
Large Mansion|大きな屋敷
|
||||
Large Mansion|大きな屋敷
|
||||
School of Magic|魔法学校
|
||||
School of Magic|魔法学校
|
||||
Fortress City |城塞都市
|
||||
Fortress City |城塞都市
|
||||
Fortress City (Snow)|城塞都市(雪)
|
||||
Fortress City (Snow)|城塞都市(雪)
|
||||
Large Mansion|大きな屋敷
|
||||
Large Mansion|大きな屋敷
|
||||
School of Magic|魔法学校
|
||||
School of Magic|魔法学校
|
||||
Bridge (H)|橋(横)
|
||||
Bridge (V)|橋(縦)
|
||||
Collapsed Bridge (H)|崩れた橋(横)
|
||||
Collapsed Bridge (V)|崩れた橋(縦)
|
||||
Snow Bridge (H)|雪の橋(横)
|
||||
Snow Bridge (V)|雪の橋(縦)
|
||||
Collapsed Snow Bridge (H)|崩れた雪の橋(横)
|
||||
Collapsed Snow Bridge (V)|崩れた雪の橋(縦)
|
||||
Tower A|塔A
|
||||
Tower A (Ruins)|塔A(廃墟)
|
||||
Tower B|塔B
|
||||
Tower C|塔C
|
||||
Tower A (Snow)|塔A(雪)
|
||||
Tower D|塔D
|
||||
Temple A|神殿A
|
||||
Temple A (Snow)|神殿A(雪)
|
||||
Tower A|塔A
|
||||
Tower A (Ruins)|塔A(廃墟)
|
||||
Tower B|塔B
|
||||
Tower C|塔C
|
||||
Tower A (Snow)|塔A(雪)
|
||||
Tower D (Ruins)|塔D(廃墟)
|
||||
Temple B|神殿B
|
||||
Temple C|神殿C
|
||||
Castle A|城A
|
||||
Castle A|城A
|
||||
Castle B|城B
|
||||
Castle B|城B
|
||||
Fort A|砦A
|
||||
Fort A|砦A
|
||||
Fort B|砦B
|
||||
Fort B|砦B
|
||||
Castle A|城A
|
||||
Castle A|城A
|
||||
Castle B|城B
|
||||
Castle B|城B
|
||||
Fort A|砦A
|
||||
Fort A|砦A
|
||||
Fort B|砦B
|
||||
Fort B|砦B
|
||||
Castle C|城C
|
||||
Castle C|城C
|
||||
Castle D|城D
|
||||
Castle D|城D
|
||||
Castle (Ruins)|城(廃墟)
|
||||
Castle (Ruins)|城(廃墟)
|
||||
Fort (Ruins)|砦(廃墟)
|
||||
Fort (Ruins)|砦(廃墟)
|
||||
Castle C|城C
|
||||
Castle C|城C
|
||||
Castle D|城D
|
||||
Castle D|城D
|
||||
Castle (Ruins)|城(廃墟)
|
||||
Castle (Ruins)|城(廃墟)
|
||||
Fort (Ruins)|砦(廃墟)
|
||||
Fort (Ruins)|砦(廃墟)
|
||||
Castle A, B (Snow)|城A・B(雪)
|
||||
Castle A, B (Snow)|城A・B(雪)
|
||||
Castle C, D (Snow)|城C・D(雪)
|
||||
Castle C, D (Snow)|城C・D(雪)
|
||||
Fort (Snow)|砦(雪)
|
||||
Fort (Snow)|砦(雪)
|
||||
Castle (Ruins, Snow)|城(廃墟・雪)
|
||||
Castle (Ruins, Snow)|城(廃墟・雪)
|
||||
Castle A, B (Snow)|城A・B(雪)
|
||||
Castle A, B (Snow)|城A・B(雪)
|
||||
Castle C, D (Snow)|城C・D(雪)
|
||||
Castle C, D (Snow)|城C・D(雪)
|
||||
Fort (Snow)|砦(雪)
|
||||
Fort (Snow)|砦(雪)
|
||||
Castle (Ruins, Snow)|城(廃墟・雪)
|
||||
Castle (Ruins, Snow)|城(廃墟・雪)
|
||||
Castle (Walled)|城(城壁)
|
||||
Castle (Walled)|城(城壁)
|
||||
Castle (Walled)|城(城壁)
|
||||
Demon Castle|魔王城
|
||||
Demon Castle|魔王城
|
||||
Cursed Castle|呪われた城
|
||||
Cursed Castle|呪われた城
|
||||
Town C (Ruins)|町C(廃墟)
|
||||
Castle (Walled)|城(城壁)
|
||||
Castle (Walled)|城(城壁)
|
||||
Castle (Walled)|城(城壁)
|
||||
Demon Castle|魔王城
|
||||
Demon Castle|魔王城
|
||||
Cursed Castle|呪われた城
|
||||
Cursed Castle|呪われた城
|
||||
Town F (Ruins)|町F(廃墟)
|
||||
Castle (Walled)|城(城壁)
|
||||
Castle (Walled)|城(城壁)
|
||||
Castle (Walled)|城(城壁)
|
||||
Town A (Ruins)|町A(廃墟)
|
||||
Town A (Ruins)|町A(廃墟)
|
||||
Village A (Ruins)|村A(廃墟)
|
||||
Village A (Ruins)|村A(廃墟)
|
||||
House (Ruins)|家(廃墟)
|
||||
Castle Wall (Ruins A)|城壁(廃墟A)
|
||||
Castle Wall (Ruins B)|城壁(廃墟B)
|
||||
Castle Wall (Ruins C)|城壁(廃墟C)
|
||||
Castle Wall|城壁
|
||||
Castle Wall|城壁
|
||||
Castle Wall|城壁
|
||||
Castle Wall|城壁
|
||||
Castle Wall|城壁
|
||||
Castle Wall|城壁
|
||||
Castle Wall (Gate)|城壁(城門)
|
||||
Castle Wall|城壁
|
||||
Castle Wall|城壁
|
||||
Castle Wall|城壁
|
||||
Castle Wall|城壁
|
||||
Castle Wall|城壁
|
||||
Castle Wall|城壁
|
||||
Castle Wall|城壁
|
||||
Castle Wall|城壁
|
||||
Castle Wall|城壁
|
||||
Castle Wall|城壁
|
||||
Castle Wall|城壁
|
||||
Castle Wall|城壁
|
||||
Castle Wall|城壁
|
||||
Barricades|バリケード
|
||||
Castle Wall|城壁
|
||||
Castle Wall|城壁
|
||||
Castle Wall|城壁
|
||||
Castle Wall|城壁
|
||||
Castle Wall|城壁
|
||||
Castle Wall|城壁
|
||||
Castle Wall|城壁
|
||||
Lookout Post|やぐら
|
||||
Floating Continent (Giant Tree)|浮遊大陸(大樹)
|
||||
Floating Continent (Giant Tree)|浮遊大陸(大樹)
|
||||
Floating Continent|浮遊大陸
|
||||
Floating Continent|浮遊大陸
|
||||
Floating Continent (Cloud)|浮遊大陸(雲)
|
||||
Floating Continent (Cloud)|浮遊大陸(雲)
|
||||
Cloud Land|雲の大地
|
||||
Cloud Land|雲の大地
|
||||
Floating Continent (Castle)|浮遊大陸(城)
|
||||
Floating Continent (Castle)|浮遊大陸(城)
|
||||
Floating Continent|浮遊大陸
|
||||
Floating Continent|浮遊大陸
|
||||
Floating Continent (Cloud)|浮遊大陸(雲)
|
||||
Floating Continent (Cloud)|浮遊大陸(雲)
|
||||
Cloud Land|雲の大地
|
||||
Cloud Land|雲の大地
|
||||
Floating Continent (Temple)|浮遊大陸(神殿)
|
||||
Floating Continent (Temple)|浮遊大陸(神殿)
|
||||
Floating Continent (Shadow)|浮遊大陸(影)
|
||||
Floating Continent (Shadow)|浮遊大陸(影)
|
||||
Cloud Land (Temple)|雲の大地(神殿)
|
||||
Cloud Land (Temple)|雲の大地(神殿)
|
||||
Cloud Land (Castle)|雲の大地(城)
|
||||
Cloud Land (Castle)|雲の大地(城)
|
||||
256
www/img/tilesets/World_C.txt
Normal file
256
www/img/tilesets/World_C.txt
Normal file
|
|
@ -0,0 +1,256 @@
|
|||
Transparent|透明
|
||||
Signboard A|看板A
|
||||
Signboard B|看板B
|
||||
Signboard C|看板C
|
||||
Iron Bridge (H)|鉄橋(横)
|
||||
Iron Bridge (V)|鉄橋(縦)
|
||||
Reservoir A|貯水池A
|
||||
Reservoir B|貯水池B
|
||||
Hut|小屋
|
||||
Shanty|掘っ立て小屋
|
||||
Signboard D|看板D
|
||||
Stele A|石碑A
|
||||
Stele B|石碑B
|
||||
Windmill|風車
|
||||
Parabolic Antenna|パラボラアンテナ
|
||||
Heliport|ヘリポート
|
||||
Entrance A (Open)|入口A(開)
|
||||
Entrance A (Closed)|入口A(閉)
|
||||
Entrance B (Open)|入口B(開)
|
||||
Entrance B (Closed)|入口B(閉)
|
||||
Entrance C (Open)|入口C(開)
|
||||
Entrance C (Closed)|入口C(閉)
|
||||
Entrance D (Closed)|入口D(閉)
|
||||
Entrance E (Closed)|入口E(閉)
|
||||
Road|道路
|
||||
Road|道路
|
||||
Road Closed|通行止め
|
||||
Rocky Mountain|岩山
|
||||
Rocky Mountain|岩山
|
||||
Mountain|山
|
||||
Mountain|山
|
||||
Coniferous Tree A|針葉樹A
|
||||
Road|道路
|
||||
Road|道路
|
||||
Road|道路
|
||||
Rocky Mountain|岩山
|
||||
Rocky Mountain|岩山
|
||||
Mountain|山
|
||||
Mountain|山
|
||||
Coniferous Tree B|針葉樹B
|
||||
Road|道路
|
||||
Road|道路
|
||||
Road|道路
|
||||
Rocky Mountain|岩山
|
||||
Rocky Mountain|岩山
|
||||
Mountain|山
|
||||
Mountain|山
|
||||
Broadleaf Tree|広葉樹
|
||||
Road|道路
|
||||
Road|道路
|
||||
Road|道路
|
||||
Rocky Mountain|岩山
|
||||
Rocky Mountain|岩山
|
||||
Mountain|山
|
||||
Mountain|山
|
||||
Broken Buildings|壊れたビル街
|
||||
Town A|町A
|
||||
Town B|町B
|
||||
Slum A|スラム街A
|
||||
Slum B|スラム街B
|
||||
Mansion A|邸宅A
|
||||
Mansion A|邸宅A
|
||||
Gate A|ゲートA
|
||||
Gate B|ゲートB
|
||||
Shopping Area A|商店街A
|
||||
Shopping Area B|商店街B
|
||||
Buildings A|ビル街A
|
||||
Buildings B|ビル街B
|
||||
Mansion B|邸宅B
|
||||
Mansion B|邸宅B
|
||||
Gate C|ゲートC
|
||||
Gate D|ゲートD
|
||||
Residential Street|住宅街
|
||||
Residential Street|住宅街
|
||||
Slum|スラム街
|
||||
Slum|スラム街
|
||||
School|学校
|
||||
School|学校
|
||||
Hospital|病院
|
||||
Hospital|病院
|
||||
Residential Street|住宅街
|
||||
Residential Street|住宅街
|
||||
Slum|スラム街
|
||||
Slum|スラム街
|
||||
School|学校
|
||||
School|学校
|
||||
Hospital|病院
|
||||
Hospital|病院
|
||||
City A|街A
|
||||
City A|街A
|
||||
City B|街B
|
||||
City B|街B
|
||||
Residence A|屋敷A
|
||||
Residence A|屋敷A
|
||||
Residence B|屋敷B
|
||||
Residence B|屋敷B
|
||||
City A|街A
|
||||
City A|街A
|
||||
City B|街B
|
||||
City B|街B
|
||||
Residence A|屋敷A
|
||||
Residence A|屋敷A
|
||||
Residence B|屋敷B
|
||||
Residence B|屋敷B
|
||||
Bridge A (V)|橋A(縦)
|
||||
Bridge A (H)|橋A(横)
|
||||
Broken Bridge A (V)|壊れた橋A(縦)
|
||||
Broken Bridge A (H)|壊れた橋A(横)
|
||||
Bridge B (V)|橋B(縦)
|
||||
Bridge B (H)|橋B(横)
|
||||
Broken Bridge B (V)|壊れた橋(縦)
|
||||
Broken Bridge B (H)|壊れた橋(横)
|
||||
Building A|ビルA
|
||||
Building B|ビルB
|
||||
Building C|ビルC
|
||||
Building D|ビルD
|
||||
Apartment|マンション
|
||||
Apartment Complex|マンション群
|
||||
Collapsed Building A|崩壊したビルA
|
||||
Collapsed Building B|崩壊したビルB
|
||||
Building A|ビルA
|
||||
Building B|ビルB
|
||||
Building C|ビルC
|
||||
Building D|ビルD
|
||||
Apartment|マンション
|
||||
Apartment Complex|マンション群
|
||||
Collapsed Building A|崩壊したビルA
|
||||
Collapsed Building B|崩壊したビルB
|
||||
Large Town A|大きな町A
|
||||
Large Town A|大きな町A
|
||||
Entertainment District A|歓楽街A
|
||||
Entertainment District A|歓楽街A
|
||||
Police Station|警察署
|
||||
Police Station|警察署
|
||||
Crater A|クレーターA
|
||||
Crater A|クレーターA
|
||||
Large Town A|大きな町A
|
||||
Large Town A|大きな町A
|
||||
Entertainment District A|歓楽街A
|
||||
Entertainment District A|歓楽街A
|
||||
Police Station|警察署
|
||||
Police Station|警察署
|
||||
Crater A|クレーターA
|
||||
Crater A|クレーターA
|
||||
Large Town B|大きな町B
|
||||
Large Town B|大きな町B
|
||||
Entertainment District B|歓楽街B
|
||||
Entertainment District B|歓楽街B
|
||||
Museum|博物館
|
||||
Museum|博物館
|
||||
Crater B|クレーターB
|
||||
Crater B|クレーターB
|
||||
Large Town B|大きな町B
|
||||
Large Town B|大きな町B
|
||||
Entertainment District B|歓楽街B
|
||||
Entertainment District B|歓楽街B
|
||||
Museum|博物館
|
||||
Museum|博物館
|
||||
Crater B|クレーターB
|
||||
Crater B|クレーターB
|
||||
Warehouse A|倉庫A
|
||||
Warehouse A|倉庫A
|
||||
Factory|工場
|
||||
Factory|工場
|
||||
Warehouse B|倉庫B
|
||||
Gantry Crane|ガントリークレーン
|
||||
Park|公園
|
||||
Crater C|クレーターC
|
||||
Warehouse A|倉庫A
|
||||
Warehouse A|倉庫A
|
||||
Factory|工場
|
||||
Factory|工場
|
||||
Warehouse B|倉庫B
|
||||
Gantry Crane|ガントリークレーン
|
||||
Statue A|像A
|
||||
Statue B|像B
|
||||
Fuel Tank|燃料タンク
|
||||
Fuel Tank|燃料タンク
|
||||
Construction Site|工事現場
|
||||
Construction Site|工事現場
|
||||
Watchtower|監視塔
|
||||
Steel Tower|鉄塔
|
||||
Tower A|タワーA
|
||||
Tower B|タワーB
|
||||
Fuel Tank|燃料タンク
|
||||
Fuel Tank|燃料タンク
|
||||
Construction Site|工事現場
|
||||
Construction Site|工事現場
|
||||
Watchtower|監視塔
|
||||
Steel Tower|鉄塔
|
||||
Tower A|タワーA
|
||||
Tower B|タワーB
|
||||
Outer Wall|外壁
|
||||
Outer Wall|外壁
|
||||
Outer Wall|外壁
|
||||
Outer Wall|外壁
|
||||
Outer Wall|外壁
|
||||
Outer Wall|外壁
|
||||
Outer Wall|外壁
|
||||
Outer Wall|外壁
|
||||
Outer Wall|外壁
|
||||
Outer Wall (Gate)|外壁(門)
|
||||
Outer Wall|外壁
|
||||
Outer Wall|外壁
|
||||
Outer Wall|外壁
|
||||
Outer Wall|外壁
|
||||
Outer Wall|外壁
|
||||
Outer Wall|外壁
|
||||
Outer Wall|外壁
|
||||
Outer Wall|外壁
|
||||
Outer Wall|外壁
|
||||
Outer Wall|外壁
|
||||
Outer Wall|外壁
|
||||
Outer Wall|外壁
|
||||
Outer Wall|外壁
|
||||
Outer Wall (Gate)|外壁(門)
|
||||
Outer Wall|外壁
|
||||
Outer Wall|外壁
|
||||
Outer Wall|外壁
|
||||
Outer Wall|外壁
|
||||
Outer Wall|外壁
|
||||
Outer Wall|外壁
|
||||
Outer Wall|外壁
|
||||
Outer Wall|外壁
|
||||
Outer Wall|外壁
|
||||
Outer Wall|外壁
|
||||
Outer Wall|外壁
|
||||
Outer Wall|外壁
|
||||
Outer Wall|外壁
|
||||
Outer Wall|外壁
|
||||
Outer Wall|外壁
|
||||
Outer Wall|外壁
|
||||
Theme Park|テーマパーク
|
||||
Theme Park|テーマパーク
|
||||
Port|港湾
|
||||
Port|港湾
|
||||
Military Base|軍事基地
|
||||
Military Base|軍事基地
|
||||
Dome|ドーム
|
||||
Dome|ドーム
|
||||
Theme Park|テーマパーク
|
||||
Theme Park|テーマパーク
|
||||
Port|港湾
|
||||
Port|港湾
|
||||
Military Base|軍事基地
|
||||
Military Base|軍事基地
|
||||
Dome|ドーム
|
||||
Dome|ドーム
|
||||
Lighthouse|灯台
|
||||
Broken Lighthouse|壊れた灯台
|
||||
Temple|寺院
|
||||
Church|教会
|
||||
Cemetery A|墓地A
|
||||
Cemetery B|墓地B
|
||||
Prison|刑務所
|
||||
Prison|刑務所
|
||||
15
www/js/libs/fpsmeter.js
Normal file
15
www/js/libs/fpsmeter.js
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
/*! FPSMeter 0.3.1 - 9th May 2013 | https://github.com/Darsain/fpsmeter */
|
||||
(function(m,j){function s(a,e){for(var g in e)try{a.style[g]=e[g]}catch(j){}return a}function H(a){return null==a?String(a):"object"===typeof a||"function"===typeof a?Object.prototype.toString.call(a).match(/\s([a-z]+)/i)[1].toLowerCase()||"object":typeof a}function R(a,e){if("array"!==H(e))return-1;if(e.indexOf)return e.indexOf(a);for(var g=0,j=e.length;g<j;g++)if(e[g]===a)return g;return-1}function I(){var a=arguments,e;for(e in a[1])if(a[1].hasOwnProperty(e))switch(H(a[1][e])){case "object":a[0][e]=
|
||||
I({},a[0][e],a[1][e]);break;case "array":a[0][e]=a[1][e].slice(0);break;default:a[0][e]=a[1][e]}return 2<a.length?I.apply(null,[a[0]].concat(Array.prototype.slice.call(a,2))):a[0]}function N(a){a=Math.round(255*a).toString(16);return 1===a.length?"0"+a:a}function S(a,e,g,j){if(a.addEventListener)a[j?"removeEventListener":"addEventListener"](e,g,!1);else if(a.attachEvent)a[j?"detachEvent":"attachEvent"]("on"+e,g)}function D(a,e){function g(a,b,d,c){return y[0|a][Math.round(Math.min((b-d)/(c-d)*J,J))]}
|
||||
function r(){f.legend.fps!==q&&(f.legend.fps=q,f.legend[T]=q?"FPS":"ms");K=q?b.fps:b.duration;f.count[T]=999<K?"999+":K.toFixed(99<K?0:d.decimals)}function m(){z=A();L<z-d.threshold&&(b.fps-=b.fps/Math.max(1,60*d.smoothing/d.interval),b.duration=1E3/b.fps);for(c=d.history;c--;)E[c]=0===c?b.fps:E[c-1],F[c]=0===c?b.duration:F[c-1];r();if(d.heat){if(w.length)for(c=w.length;c--;)w[c].el.style[h[w[c].name].heatOn]=q?g(h[w[c].name].heatmap,b.fps,0,d.maxFps):g(h[w[c].name].heatmap,b.duration,d.threshold,
|
||||
0);if(f.graph&&h.column.heatOn)for(c=u.length;c--;)u[c].style[h.column.heatOn]=q?g(h.column.heatmap,E[c],0,d.maxFps):g(h.column.heatmap,F[c],d.threshold,0)}if(f.graph)for(p=0;p<d.history;p++)u[p].style.height=(q?E[p]?Math.round(O/d.maxFps*Math.min(E[p],d.maxFps)):0:F[p]?Math.round(O/d.threshold*Math.min(F[p],d.threshold)):0)+"px"}function k(){20>d.interval?(x=M(k),m()):(x=setTimeout(k,d.interval),P=M(m))}function G(a){a=a||window.event;a.preventDefault?(a.preventDefault(),a.stopPropagation()):(a.returnValue=
|
||||
!1,a.cancelBubble=!0);b.toggle()}function U(){d.toggleOn&&S(f.container,d.toggleOn,G,1);a.removeChild(f.container)}function V(){f.container&&U();h=D.theme[d.theme];y=h.compiledHeatmaps||[];if(!y.length&&h.heatmaps.length){for(p=0;p<h.heatmaps.length;p++){y[p]=[];for(c=0;c<=J;c++){var b=y[p],e=c,g;g=0.33/J*c;var j=h.heatmaps[p].saturation,m=h.heatmaps[p].lightness,n=void 0,k=void 0,l=void 0,t=l=void 0,v=n=k=void 0,v=void 0,l=0.5>=m?m*(1+j):m+j-m*j;0===l?g="#000":(t=2*m-l,k=(l-t)/l,g*=6,n=Math.floor(g),
|
||||
v=g-n,v*=l*k,0===n||6===n?(n=l,k=t+v,l=t):1===n?(n=l-v,k=l,l=t):2===n?(n=t,k=l,l=t+v):3===n?(n=t,k=l-v):4===n?(n=t+v,k=t):(n=l,k=t,l-=v),g="#"+N(n)+N(k)+N(l));b[e]=g}}h.compiledHeatmaps=y}f.container=s(document.createElement("div"),h.container);f.count=f.container.appendChild(s(document.createElement("div"),h.count));f.legend=f.container.appendChild(s(document.createElement("div"),h.legend));f.graph=d.graph?f.container.appendChild(s(document.createElement("div"),h.graph)):0;w.length=0;for(var q in f)f[q]&&
|
||||
h[q].heatOn&&w.push({name:q,el:f[q]});u.length=0;if(f.graph){f.graph.style.width=d.history*h.column.width+(d.history-1)*h.column.spacing+"px";for(c=0;c<d.history;c++)u[c]=f.graph.appendChild(s(document.createElement("div"),h.column)),u[c].style.position="absolute",u[c].style.bottom=0,u[c].style.right=c*h.column.width+c*h.column.spacing+"px",u[c].style.width=h.column.width+"px",u[c].style.height="0px"}s(f.container,d);r();a.appendChild(f.container);f.graph&&(O=f.graph.clientHeight);d.toggleOn&&("click"===
|
||||
d.toggleOn&&(f.container.style.cursor="pointer"),S(f.container,d.toggleOn,G))}"object"===H(a)&&a.nodeType===j&&(e=a,a=document.body);a||(a=document.body);var b=this,d=I({},D.defaults,e||{}),f={},u=[],h,y,J=100,w=[],W=0,B=d.threshold,Q=0,L=A()-B,z,E=[],F=[],x,P,q="fps"===d.show,O,K,c,p;b.options=d;b.fps=0;b.duration=0;b.isPaused=0;b.tickStart=function(){Q=A()};b.tick=function(){z=A();W=z-L;B+=(W-B)/d.smoothing;b.fps=1E3/B;b.duration=Q<L?B:z-Q;L=z};b.pause=function(){x&&(b.isPaused=1,clearTimeout(x),
|
||||
C(x),C(P),x=P=0);return b};b.resume=function(){x||(b.isPaused=0,k());return b};b.set=function(a,c){d[a]=c;q="fps"===d.show;-1!==R(a,X)&&V();-1!==R(a,Y)&&s(f.container,d);return b};b.showDuration=function(){b.set("show","ms");return b};b.showFps=function(){b.set("show","fps");return b};b.toggle=function(){b.set("show",q?"ms":"fps");return b};b.hide=function(){b.pause();f.container.style.display="none";return b};b.show=function(){b.resume();f.container.style.display="block";return b};b.destroy=function(){b.pause();
|
||||
U();b.tick=b.tickStart=function(){}};V();k()}var A,r=m.performance;A=r&&(r.now||r.webkitNow)?r[r.now?"now":"webkitNow"].bind(r):function(){return+new Date};for(var C=m.cancelAnimationFrame||m.cancelRequestAnimationFrame,M=m.requestAnimationFrame,r=["moz","webkit","o"],G=0,k=0,Z=r.length;k<Z&&!C;++k)M=(C=m[r[k]+"CancelAnimationFrame"]||m[r[k]+"CancelRequestAnimationFrame"])&&m[r[k]+"RequestAnimationFrame"];C||(M=function(a){var e=A(),g=Math.max(0,16-(e-G));G=e+g;return m.setTimeout(function(){a(e+
|
||||
g)},g)},C=function(a){clearTimeout(a)});var T="string"===H(document.createElement("div").textContent)?"textContent":"innerText";D.extend=I;window.FPSMeter=D;D.defaults={interval:100,smoothing:10,show:"fps",toggleOn:"click",decimals:1,maxFps:60,threshold:100,position:"absolute",zIndex:10,left:"5px",top:"5px",right:"auto",bottom:"auto",margin:"0 0 0 0",theme:"dark",heat:0,graph:0,history:20};var X=["toggleOn","theme","heat","graph","history"],Y="position zIndex left top right bottom margin".split(" ")})(window);(function(m,j){j.theme={};var s=j.theme.base={heatmaps:[],container:{heatOn:null,heatmap:null,padding:"5px",minWidth:"95px",height:"30px",lineHeight:"30px",textAlign:"right",textShadow:"none"},count:{heatOn:null,heatmap:null,position:"absolute",top:0,right:0,padding:"5px 10px",height:"30px",fontSize:"24px",fontFamily:"Consolas, Andale Mono, monospace",zIndex:2},legend:{heatOn:null,heatmap:null,position:"absolute",top:0,left:0,padding:"5px 10px",height:"30px",fontSize:"12px",lineHeight:"32px",fontFamily:"sans-serif",
|
||||
textAlign:"left",zIndex:2},graph:{heatOn:null,heatmap:null,position:"relative",boxSizing:"padding-box",MozBoxSizing:"padding-box",height:"100%",zIndex:1},column:{width:4,spacing:1,heatOn:null,heatmap:null}};j.theme.dark=j.extend({},s,{heatmaps:[{saturation:0.8,lightness:0.8}],container:{background:"#222",color:"#fff",border:"1px solid #1a1a1a",textShadow:"1px 1px 0 #222"},count:{heatOn:"color"},column:{background:"#3f3f3f"}});j.theme.light=j.extend({},s,{heatmaps:[{saturation:0.5,lightness:0.5}],
|
||||
container:{color:"#666",background:"#fff",textShadow:"1px 1px 0 rgba(255,255,255,.5), -1px -1px 0 rgba(255,255,255,.5)",boxShadow:"0 0 0 1px rgba(0,0,0,.1)"},count:{heatOn:"color"},column:{background:"#eaeaea"}});j.theme.colorful=j.extend({},s,{heatmaps:[{saturation:0.5,lightness:0.6}],container:{heatOn:"backgroundColor",background:"#888",color:"#fff",textShadow:"1px 1px 0 rgba(0,0,0,.2)",boxShadow:"0 0 0 1px rgba(0,0,0,.1)"},column:{background:"#777",backgroundColor:"rgba(0,0,0,.2)"}});j.theme.transparent=
|
||||
j.extend({},s,{heatmaps:[{saturation:0.8,lightness:0.5}],container:{padding:0,color:"#fff",textShadow:"1px 1px 0 rgba(0,0,0,.5)"},count:{padding:"0 5px",height:"40px",lineHeight:"40px"},legend:{padding:"0 5px",height:"40px",lineHeight:"42px"},graph:{height:"40px"},column:{width:5,background:"#999",heatOn:"backgroundColor",opacity:0.5}})})(window,FPSMeter);
|
||||
3
www/js/libs/iphone-inline-video.browser.js
Normal file
3
www/js/libs/iphone-inline-video.browser.js
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
/*! npm.im/iphone-inline-video */
|
||||
var makeVideoPlayableInline=function(){"use strict";/*! npm.im/intervalometer */
|
||||
function e(e,n,r,i){function t(r){d=n(t,i),e(r-(a||r)),a=r}var d,a;return{start:function(){d||t(0)},stop:function(){r(d),d=null,a=0}}}function n(n){return e(n,requestAnimationFrame,cancelAnimationFrame)}function r(e,n,r,i){function t(n){Boolean(e[r])===Boolean(i)&&n.stopImmediatePropagation(),delete e[r]}return e.addEventListener(n,t,!1),t}function i(e,n,r,i){function t(){return r[n]}function d(e){r[n]=e}i&&d(e[n]),Object.defineProperty(e,n,{get:t,set:d})}function t(e,n,r){r.addEventListener(n,function(){return e.dispatchEvent(new Event(n))})}function d(e,n){Promise.resolve().then(function(){e.dispatchEvent(new Event(n))})}function a(e){var n=new Audio;return t(e,"play",n),t(e,"playing",n),t(e,"pause",n),n.crossOrigin=e.crossOrigin,n.src=e.src||e.currentSrc||"data:",n}function o(e,n,r){(m||0)+200<Date.now()&&(e[g]=!0,m=Date.now()),r||(e.currentTime=n),A[++k%3]=100*n|0}function u(e){return e.driver.currentTime>=e.video.duration}function s(e){var n=this;n.video.readyState>=n.video.HAVE_FUTURE_DATA?(n.hasAudio||(n.driver.currentTime=n.video.currentTime+e*n.video.playbackRate/1e3,n.video.loop&&u(n)&&(n.driver.currentTime=0)),o(n.video,n.driver.currentTime)):n.video.networkState!==n.video.NETWORK_IDLE||n.video.buffered.length||n.video.load(),n.video.ended&&(delete n.video[g],n.video.pause(!0))}function c(){var e=this,n=e[b];return e.webkitDisplayingFullscreen?void e[E]():("data:"!==n.driver.src&&n.driver.src!==e.src&&(o(e,0,!0),n.driver.src=e.src),void(e.paused&&(n.paused=!1,e.buffered.length||e.load(),n.driver.play(),n.updater.start(),n.hasAudio||(d(e,"play"),n.video.readyState>=n.video.HAVE_ENOUGH_DATA&&d(e,"playing")))))}function v(e){var n=this,r=n[b];r.driver.pause(),r.updater.stop(),n.webkitDisplayingFullscreen&&n[T](),r.paused&&!e||(r.paused=!0,r.hasAudio||d(n,"pause"),n.ended&&(n[g]=!0,d(n,"ended")))}function p(e,r){var i=e[b]={};i.paused=!0,i.hasAudio=r,i.video=e,i.updater=n(s.bind(i)),r?i.driver=a(e):(e.addEventListener("canplay",function(){e.paused||d(e,"playing")}),i.driver={src:e.src||e.currentSrc||"data:",muted:!0,paused:!0,pause:function(){i.driver.paused=!0},play:function(){i.driver.paused=!1,u(i)&&o(e,0)},get ended(){return u(i)}}),e.addEventListener("emptied",function(){var n=!i.driver.src||"data:"===i.driver.src;i.driver.src&&i.driver.src!==e.src&&(o(e,0,!0),i.driver.src=e.src,n?i.driver.play():i.updater.stop())},!1),e.addEventListener("webkitbeginfullscreen",function(){e.paused?r&&!i.driver.buffered.length&&i.driver.load():(e.pause(),e[E]())}),r&&(e.addEventListener("webkitendfullscreen",function(){i.driver.currentTime=e.currentTime}),e.addEventListener("seeking",function(){A.indexOf(100*e.currentTime|0)<0&&(i.driver.currentTime=e.currentTime)}))}function l(e){var n=e[b];e[E]=e.play,e[T]=e.pause,e.play=c,e.pause=v,i(e,"paused",n.driver),i(e,"muted",n.driver,!0),i(e,"playbackRate",n.driver,!0),i(e,"ended",n.driver),i(e,"loop",n.driver,!0),r(e,"seeking"),r(e,"seeked"),r(e,"timeupdate",g,!1),r(e,"ended",g,!1)}function f(e,n,r){void 0===n&&(n=!0),void 0===r&&(r=!0),r&&!h||e[b]||(p(e,n),l(e),e.classList.add("IIV"),!n&&e.autoplay&&e.play(),/iPhone|iPod|iPad/.test(navigator.platform)||console.warn("iphone-inline-video is not guaranteed to work in emulated environments"))}var m,y="undefined"==typeof Symbol?function(e){return"@"+(e||"@")+Math.random()}:Symbol,h="object-fit"in document.head.style&&/iPhone|iPod/i.test(navigator.userAgent)&&!matchMedia("(-webkit-video-playable-inline)").matches,b=y(),g=y(),E=y("nativeplay"),T=y("nativepause"),A=[],k=0;return f.isWhitelisted=h,f}();
|
||||
1
www/js/libs/lz-string.js
Normal file
1
www/js/libs/lz-string.js
Normal file
File diff suppressed because one or more lines are too long
428
www/js/libs/pixi-picture.js
Normal file
428
www/js/libs/pixi-picture.js
Normal file
|
|
@ -0,0 +1,428 @@
|
|||
var __extends = (this && this.__extends) || function (d, b) {
|
||||
for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
|
||||
function __() { this.constructor = d; }
|
||||
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
||||
};
|
||||
var PIXI;
|
||||
(function (PIXI) {
|
||||
var extras;
|
||||
(function (extras) {
|
||||
var shaderLib = [
|
||||
{
|
||||
vertUniforms: "",
|
||||
vertCode: "vTextureCoord = aTextureCoord;",
|
||||
fragUniforms: "uniform vec4 uTextureClamp;",
|
||||
fragCode: "vec2 textureCoord = clamp(vTextureCoord, uTextureClamp.xy, uTextureClamp.zw);"
|
||||
},
|
||||
{
|
||||
vertUniforms: "uniform mat3 uTransform;",
|
||||
vertCode: "vTextureCoord = (uTransform * vec3(aTextureCoord, 1.0)).xy;",
|
||||
fragUniforms: "",
|
||||
fragCode: "vec2 textureCoord = vTextureCoord;"
|
||||
},
|
||||
{
|
||||
vertUniforms: "uniform mat3 uTransform;",
|
||||
vertCode: "vTextureCoord = (uTransform * vec3(aTextureCoord, 1.0)).xy;",
|
||||
fragUniforms: "uniform mat3 uMapCoord;\nuniform vec4 uClampFrame;\nuniform vec2 uClampOffset;",
|
||||
fragCode: "vec2 textureCoord = mod(vTextureCoord - uClampOffset, vec2(1.0, 1.0)) + uClampOffset;" +
|
||||
"\ntextureCoord = (uMapCoord * vec3(textureCoord, 1.0)).xy;" +
|
||||
"\ntextureCoord = clamp(textureCoord, uClampFrame.xy, uClampFrame.zw);"
|
||||
}
|
||||
];
|
||||
var PictureShader = (function (_super) {
|
||||
__extends(PictureShader, _super);
|
||||
function PictureShader(gl, vert, frag, tilingMode) {
|
||||
var lib = shaderLib[tilingMode];
|
||||
_super.call(this, gl, vert.replace(/%SPRITE_UNIFORMS%/gi, lib.vertUniforms)
|
||||
.replace(/%SPRITE_CODE%/gi, lib.vertCode), frag.replace(/%SPRITE_UNIFORMS%/gi, lib.fragUniforms)
|
||||
.replace(/%SPRITE_CODE%/gi, lib.fragCode));
|
||||
this.bind();
|
||||
this.tilingMode = tilingMode;
|
||||
this.tempQuad = new PIXI.Quad(gl);
|
||||
this.tempQuad.initVao(this);
|
||||
this.uniforms.uColor = new Float32Array([1, 1, 1, 1]);
|
||||
this.uniforms.uSampler = [0, 1];
|
||||
}
|
||||
PictureShader.blendVert = "\nattribute vec2 aVertexPosition;\nattribute vec2 aTextureCoord;\nattribute vec4 aColor;\n\nuniform mat3 projectionMatrix;\nuniform mat3 mapMatrix;\n\nvarying vec2 vTextureCoord;\nvarying vec2 vMapCoord;\n%SPRITE_UNIFORMS%\n\nvoid main(void)\n{\n gl_Position = vec4((projectionMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);\n %SPRITE_CODE%\n vMapCoord = (mapMatrix * vec3(aVertexPosition, 1.0)).xy;\n}\n";
|
||||
return PictureShader;
|
||||
}(PIXI.Shader));
|
||||
extras.PictureShader = PictureShader;
|
||||
})(extras = PIXI.extras || (PIXI.extras = {}));
|
||||
})(PIXI || (PIXI = {}));
|
||||
var PIXI;
|
||||
(function (PIXI) {
|
||||
var extras;
|
||||
(function (extras) {
|
||||
var overlayFrag = "\nvarying vec2 vTextureCoord;\nvarying vec2 vMapCoord;\nvarying vec4 vColor;\n\nuniform sampler2D uSampler[2];\nuniform vec4 uColor;\n%SPRITE_UNIFORMS%\n\nvoid main(void)\n{\n %SPRITE_CODE%\n vec4 source = texture2D(uSampler[0], textureCoord) * uColor;\n vec4 target = texture2D(uSampler[1], vMapCoord);\n\n //reverse hardlight\n if (source.a == 0.0) {\n gl_FragColor = vec4(0, 0, 0, 0);\n return;\n }\n //yeah, premultiplied\n vec3 Cb = source.rgb/source.a, Cs;\n if (target.a > 0.0) {\n Cs = target.rgb / target.a;\n }\n vec3 multiply = Cb * Cs * 2.0;\n vec3 Cs2 = Cs * 2.0 - 1.0;\n vec3 screen = Cb + Cs2 - Cb * Cs2;\n vec3 B;\n if (Cb.r <= 0.5) {\n B.r = multiply.r;\n } else {\n B.r = screen.r;\n }\n if (Cb.g <= 0.5) {\n B.g = multiply.g;\n } else {\n B.g = screen.g;\n }\n if (Cb.b <= 0.5) {\n B.b = multiply.b;\n } else {\n B.b = screen.b;\n }\n vec4 res;\n res.xyz = (1.0 - source.a) * Cs + source.a * B;\n res.a = source.a + target.a * (1.0-source.a);\n gl_FragColor = vec4(res.xyz * res.a, res.a);\n}\n";
|
||||
var HardLightShader = (function (_super) {
|
||||
__extends(HardLightShader, _super);
|
||||
function HardLightShader(gl, tilingMode) {
|
||||
_super.call(this, gl, extras.PictureShader.blendVert, overlayFrag, tilingMode);
|
||||
}
|
||||
return HardLightShader;
|
||||
}(extras.PictureShader));
|
||||
extras.HardLightShader = HardLightShader;
|
||||
})(extras = PIXI.extras || (PIXI.extras = {}));
|
||||
})(PIXI || (PIXI = {}));
|
||||
var PIXI;
|
||||
(function (PIXI) {
|
||||
var extras;
|
||||
(function (extras) {
|
||||
function mapFilterBlendModesToPixi(gl, array) {
|
||||
if (array === void 0) { array = []; }
|
||||
array[PIXI.BLEND_MODES.OVERLAY] = [new extras.OverlayShader(gl, 0), new extras.OverlayShader(gl, 1), new extras.OverlayShader(gl, 2)];
|
||||
array[PIXI.BLEND_MODES.HARD_LIGHT] = [new extras.HardLightShader(gl, 0), new extras.HardLightShader(gl, 1), new extras.HardLightShader(gl, 2)];
|
||||
return array;
|
||||
}
|
||||
extras.mapFilterBlendModesToPixi = mapFilterBlendModesToPixi;
|
||||
})(extras = PIXI.extras || (PIXI.extras = {}));
|
||||
})(PIXI || (PIXI = {}));
|
||||
var PIXI;
|
||||
(function (PIXI) {
|
||||
var extras;
|
||||
(function (extras) {
|
||||
var normalFrag = "\nvarying vec2 vTextureCoord;\nvarying vec4 vColor;\n\nuniform sampler2D uSampler[2];\nuniform vec4 uColor;\n%SPRITE_UNIFORMS%\n\nvoid main(void)\n{\n %SPRITE_CODE%\n\n vec4 sample = texture2D(uSampler[0], textureCoord);\n gl_FragColor = sample * uColor;\n}\n";
|
||||
var normalVert = "\nattribute vec2 aVertexPosition;\nattribute vec2 aTextureCoord;\nattribute vec4 aColor;\n\nuniform mat3 projectionMatrix;\n\nvarying vec2 vTextureCoord;\n%SPRITE_UNIFORMS%\n\nvoid main(void)\n{\n gl_Position = vec4((projectionMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);\n %SPRITE_CODE%\n}\n";
|
||||
var NormalShader = (function (_super) {
|
||||
__extends(NormalShader, _super);
|
||||
function NormalShader(gl, tilingMode) {
|
||||
_super.call(this, gl, normalVert, normalFrag, tilingMode);
|
||||
}
|
||||
return NormalShader;
|
||||
}(extras.PictureShader));
|
||||
extras.NormalShader = NormalShader;
|
||||
})(extras = PIXI.extras || (PIXI.extras = {}));
|
||||
})(PIXI || (PIXI = {}));
|
||||
var PIXI;
|
||||
(function (PIXI) {
|
||||
var extras;
|
||||
(function (extras) {
|
||||
var overlayFrag = "\nvarying vec2 vTextureCoord;\nvarying vec2 vMapCoord;\nvarying vec4 vColor;\n\nuniform sampler2D uSampler[2];\nuniform vec4 uColor;\n%SPRITE_UNIFORMS%\n\nvoid main(void)\n{\n %SPRITE_CODE%\n vec4 source = texture2D(uSampler[0], textureCoord) * uColor;\n vec4 target = texture2D(uSampler[1], vMapCoord);\n\n //reverse hardlight\n if (source.a == 0.0) {\n gl_FragColor = vec4(0, 0, 0, 0);\n return;\n }\n //yeah, premultiplied\n vec3 Cb = source.rgb/source.a, Cs;\n if (target.a > 0.0) {\n Cs = target.rgb / target.a;\n }\n vec3 multiply = Cb * Cs * 2.0;\n vec3 Cb2 = Cb * 2.0 - 1.0;\n vec3 screen = Cb2 + Cs - Cb2 * Cs;\n vec3 B;\n if (Cs.r <= 0.5) {\n B.r = multiply.r;\n } else {\n B.r = screen.r;\n }\n if (Cs.g <= 0.5) {\n B.g = multiply.g;\n } else {\n B.g = screen.g;\n }\n if (Cs.b <= 0.5) {\n B.b = multiply.b;\n } else {\n B.b = screen.b;\n }\n vec4 res;\n res.xyz = (1.0 - source.a) * Cs + source.a * B;\n res.a = source.a + target.a * (1.0-source.a);\n gl_FragColor = vec4(res.xyz * res.a, res.a);\n}\n";
|
||||
var OverlayShader = (function (_super) {
|
||||
__extends(OverlayShader, _super);
|
||||
function OverlayShader(gl, tilingMode) {
|
||||
_super.call(this, gl, extras.PictureShader.blendVert, overlayFrag, tilingMode);
|
||||
}
|
||||
return OverlayShader;
|
||||
}(extras.PictureShader));
|
||||
extras.OverlayShader = OverlayShader;
|
||||
})(extras = PIXI.extras || (PIXI.extras = {}));
|
||||
})(PIXI || (PIXI = {}));
|
||||
var PIXI;
|
||||
(function (PIXI) {
|
||||
var extras;
|
||||
(function (extras) {
|
||||
function nextPow2(v) {
|
||||
v += (v === 0) ? 1 : 0;
|
||||
--v;
|
||||
v |= v >>> 1;
|
||||
v |= v >>> 2;
|
||||
v |= v >>> 4;
|
||||
v |= v >>> 8;
|
||||
v |= v >>> 16;
|
||||
return v + 1;
|
||||
}
|
||||
var PictureRenderer = (function (_super) {
|
||||
__extends(PictureRenderer, _super);
|
||||
function PictureRenderer(renderer) {
|
||||
_super.call(this, renderer);
|
||||
}
|
||||
PictureRenderer.prototype.onContextChange = function () {
|
||||
var gl = this.renderer.gl;
|
||||
this.drawModes = extras.mapFilterBlendModesToPixi(gl);
|
||||
this.normalShader = [new extras.NormalShader(gl, 0), new extras.NormalShader(gl, 1), new extras.NormalShader(gl, 2)];
|
||||
this._tempClamp = new Float32Array(4);
|
||||
this._tempColor = new Float32Array(4);
|
||||
this._tempRect = new PIXI.Rectangle();
|
||||
this._tempRect2 = new PIXI.Rectangle();
|
||||
this._tempRect3 = new PIXI.Rectangle();
|
||||
this._tempMatrix = new PIXI.Matrix();
|
||||
this._tempMatrix2 = new PIXI.Matrix();
|
||||
this._bigBuf = new Uint8Array(1 << 20);
|
||||
this._renderTexture = new PIXI.BaseRenderTexture(1024, 1024);
|
||||
};
|
||||
PictureRenderer.prototype.start = function () {
|
||||
};
|
||||
PictureRenderer.prototype.flush = function () {
|
||||
};
|
||||
PictureRenderer.prototype._getRenderTexture = function (minWidth, minHeight) {
|
||||
if (this._renderTexture.width < minWidth ||
|
||||
this._renderTexture.height < minHeight) {
|
||||
minHeight = nextPow2(minWidth);
|
||||
minHeight = nextPow2(minHeight);
|
||||
this._renderTexture.resize(minWidth, minHeight);
|
||||
}
|
||||
return this._renderTexture;
|
||||
};
|
||||
PictureRenderer.prototype._getBuf = function (size) {
|
||||
var buf = this._bigBuf;
|
||||
if (buf.length < size) {
|
||||
size = nextPow2(size);
|
||||
buf = new Uint8Array(size);
|
||||
this._bigBuf = buf;
|
||||
}
|
||||
return buf;
|
||||
};
|
||||
PictureRenderer.prototype.render = function (sprite) {
|
||||
if (!sprite.texture.valid) {
|
||||
return;
|
||||
}
|
||||
var tilingMode = 0;
|
||||
if (sprite.tileTransform) {
|
||||
tilingMode = this._isSimpleSprite(sprite) ? 1 : 2;
|
||||
}
|
||||
var blendShader = this.drawModes[sprite.blendMode];
|
||||
if (blendShader) {
|
||||
this._renderBlend(sprite, blendShader[tilingMode]);
|
||||
}
|
||||
else {
|
||||
this._renderNormal(sprite, this.normalShader[tilingMode]);
|
||||
}
|
||||
};
|
||||
PictureRenderer.prototype._renderNormal = function (sprite, shader) {
|
||||
var renderer = this.renderer;
|
||||
renderer.bindShader(shader);
|
||||
renderer.state.setBlendMode(sprite.blendMode);
|
||||
this._renderInner(sprite, shader);
|
||||
};
|
||||
PictureRenderer.prototype._renderBlend = function (sprite, shader) {
|
||||
var renderer = this.renderer;
|
||||
var spriteBounds = sprite.getBounds();
|
||||
var renderTarget = renderer._activeRenderTarget;
|
||||
var matrix = renderTarget.projectionMatrix;
|
||||
var flipX = matrix.a < 0;
|
||||
var flipY = matrix.d < 0;
|
||||
var resolution = renderTarget.resolution;
|
||||
var screen = this._tempRect;
|
||||
var fr = renderTarget.sourceFrame || renderTarget.destinationFrame;
|
||||
screen.x = 0;
|
||||
screen.y = 0;
|
||||
screen.width = fr.width;
|
||||
screen.height = fr.height;
|
||||
var bounds = this._tempRect2;
|
||||
var fbw = fr.width * resolution, fbh = fr.height * resolution;
|
||||
bounds.x = (spriteBounds.x + matrix.tx / matrix.a) * resolution + fbw / 2;
|
||||
bounds.y = (spriteBounds.y + matrix.ty / matrix.d) * resolution + fbh / 2;
|
||||
bounds.width = spriteBounds.width * resolution;
|
||||
bounds.height = spriteBounds.height * resolution;
|
||||
if (flipX) {
|
||||
bounds.y = fbw - bounds.width - bounds.x;
|
||||
}
|
||||
if (flipY) {
|
||||
bounds.y = fbh - bounds.height - bounds.y;
|
||||
}
|
||||
var screenBounds = this._tempRect3;
|
||||
var x_1 = Math.floor(Math.max(screen.x, bounds.x));
|
||||
var x_2 = Math.ceil(Math.min(screen.x + screen.width, bounds.x + bounds.width));
|
||||
var y_1 = Math.floor(Math.max(screen.y, bounds.y));
|
||||
var y_2 = Math.ceil(Math.min(screen.y + screen.height, bounds.y + bounds.height));
|
||||
var pixelsWidth = x_2 - x_1;
|
||||
var pixelsHeight = y_2 - y_1;
|
||||
if (pixelsWidth <= 0 || pixelsHeight <= 0) {
|
||||
return;
|
||||
}
|
||||
var rt = this._getRenderTexture(pixelsWidth, pixelsHeight);
|
||||
renderer.bindTexture(rt, 1, true);
|
||||
var gl = renderer.gl;
|
||||
if (renderer.renderingToScreen && renderTarget.root) {
|
||||
var buf = this._getBuf(pixelsWidth * pixelsHeight * 4);
|
||||
gl.readPixels(x_1, y_1, pixelsWidth, pixelsHeight, gl.RGBA, gl.UNSIGNED_BYTE, this._bigBuf);
|
||||
gl.texSubImage2D(gl.TEXTURE_2D, 0, 0, 0, pixelsWidth, pixelsHeight, gl.RGBA, gl.UNSIGNED_BYTE, this._bigBuf);
|
||||
}
|
||||
else {
|
||||
gl.copyTexSubImage2D(gl.TEXTURE_2D, 0, 0, 0, x_1, y_1, pixelsWidth, pixelsHeight);
|
||||
}
|
||||
renderer.bindShader(shader);
|
||||
renderer.state.setBlendMode(PIXI.BLEND_MODES.NORMAL);
|
||||
if (shader.uniforms.mapMatrix) {
|
||||
var mapMatrix = this._tempMatrix;
|
||||
mapMatrix.a = bounds.width / rt.width / spriteBounds.width;
|
||||
if (flipX) {
|
||||
mapMatrix.a = -mapMatrix.a;
|
||||
mapMatrix.tx = (bounds.x - x_1) / rt.width - (spriteBounds.x + spriteBounds.width) * mapMatrix.a;
|
||||
}
|
||||
else {
|
||||
mapMatrix.tx = (bounds.x - x_1) / rt.width - spriteBounds.x * mapMatrix.a;
|
||||
}
|
||||
mapMatrix.d = bounds.height / rt.height / spriteBounds.height;
|
||||
if (flipY) {
|
||||
mapMatrix.d = -mapMatrix.d;
|
||||
mapMatrix.ty = (bounds.y - y_1) / rt.height - (spriteBounds.y + spriteBounds.height) * mapMatrix.d;
|
||||
}
|
||||
else {
|
||||
mapMatrix.ty = (bounds.y - y_1) / rt.height - spriteBounds.y * mapMatrix.d;
|
||||
}
|
||||
shader.uniforms.mapMatrix = mapMatrix.toArray(true);
|
||||
}
|
||||
this._renderInner(sprite, shader);
|
||||
};
|
||||
PictureRenderer.prototype._renderInner = function (sprite, shader) {
|
||||
var renderer = this.renderer;
|
||||
if (shader.tilingMode > 0) {
|
||||
this._renderWithShader(sprite, shader.tilingMode === 1, shader);
|
||||
}
|
||||
else {
|
||||
this._renderSprite(sprite, shader);
|
||||
}
|
||||
};
|
||||
PictureRenderer.prototype._renderWithShader = function (ts, isSimple, shader) {
|
||||
var quad = shader.tempQuad;
|
||||
var renderer = this.renderer;
|
||||
renderer.bindVao(quad.vao);
|
||||
var vertices = quad.vertices;
|
||||
var _width = ts._width;
|
||||
var _height = ts._height;
|
||||
var _anchorX = ts._anchor._x;
|
||||
var _anchorY = ts._anchor._y;
|
||||
var w0 = _width * (1 - _anchorX);
|
||||
var w1 = _width * -_anchorX;
|
||||
var h0 = _height * (1 - _anchorY);
|
||||
var h1 = _height * -_anchorY;
|
||||
var wt = ts.transform.worldTransform;
|
||||
var a = wt.a;
|
||||
var b = wt.b;
|
||||
var c = wt.c;
|
||||
var d = wt.d;
|
||||
var tx = wt.tx;
|
||||
var ty = wt.ty;
|
||||
vertices[0] = (a * w1) + (c * h1) + tx;
|
||||
vertices[1] = (d * h1) + (b * w1) + ty;
|
||||
vertices[2] = (a * w0) + (c * h1) + tx;
|
||||
vertices[3] = (d * h1) + (b * w0) + ty;
|
||||
vertices[4] = (a * w0) + (c * h0) + tx;
|
||||
vertices[5] = (d * h0) + (b * w0) + ty;
|
||||
vertices[6] = (a * w1) + (c * h0) + tx;
|
||||
vertices[7] = (d * h0) + (b * w1) + ty;
|
||||
vertices = quad.uvs;
|
||||
vertices[0] = vertices[6] = -ts.anchor.x;
|
||||
vertices[1] = vertices[3] = -ts.anchor.y;
|
||||
vertices[2] = vertices[4] = 1.0 - ts.anchor.x;
|
||||
vertices[5] = vertices[7] = 1.0 - ts.anchor.y;
|
||||
quad.upload();
|
||||
var tex = ts._texture;
|
||||
var lt = ts.tileTransform.localTransform;
|
||||
var uv = ts.uvTransform;
|
||||
var mapCoord = uv.mapCoord;
|
||||
var uClampFrame = uv.uClampFrame;
|
||||
var uClampOffset = uv.uClampOffset;
|
||||
var w = tex.width;
|
||||
var h = tex.height;
|
||||
var W = _width;
|
||||
var H = _height;
|
||||
var tempMat = this._tempMatrix2;
|
||||
tempMat.set(lt.a * w / W, lt.b * w / H, lt.c * h / W, lt.d * h / H, lt.tx / W, lt.ty / H);
|
||||
tempMat.invert();
|
||||
if (isSimple) {
|
||||
tempMat.append(mapCoord);
|
||||
}
|
||||
else {
|
||||
shader.uniforms.uMapCoord = mapCoord.toArray(true);
|
||||
shader.uniforms.uClampFrame = uClampFrame;
|
||||
shader.uniforms.uClampOffset = uClampOffset;
|
||||
}
|
||||
shader.uniforms.uTransform = tempMat.toArray(true);
|
||||
var color = this._tempColor;
|
||||
var alpha = ts.worldAlpha;
|
||||
PIXI.utils.hex2rgb(ts.tint, color);
|
||||
color[0] *= alpha;
|
||||
color[1] *= alpha;
|
||||
color[2] *= alpha;
|
||||
color[3] = alpha;
|
||||
shader.uniforms.uColor = color;
|
||||
renderer.bindTexture(tex, 0, true);
|
||||
quad.vao.draw(this.renderer.gl.TRIANGLES, 6, 0);
|
||||
};
|
||||
PictureRenderer.prototype._renderSprite = function (sprite, shader) {
|
||||
var renderer = this.renderer;
|
||||
var quad = shader.tempQuad;
|
||||
renderer.bindVao(quad.vao);
|
||||
var uvs = sprite.texture._uvs;
|
||||
var vertices = quad.vertices;
|
||||
var vd = sprite.vertexData;
|
||||
for (var i = 0; i < 8; i++) {
|
||||
quad.vertices[i] = vd[i];
|
||||
}
|
||||
quad.uvs[0] = uvs.x0;
|
||||
quad.uvs[1] = uvs.y0;
|
||||
quad.uvs[2] = uvs.x1;
|
||||
quad.uvs[3] = uvs.y1;
|
||||
quad.uvs[4] = uvs.x2;
|
||||
quad.uvs[5] = uvs.y2;
|
||||
quad.uvs[6] = uvs.x3;
|
||||
quad.uvs[7] = uvs.y3;
|
||||
quad.upload();
|
||||
var frame = sprite.texture.frame;
|
||||
var base = sprite.texture.baseTexture;
|
||||
var clamp = this._tempClamp;
|
||||
var eps = 0.5 / base.resolution;
|
||||
clamp[0] = (frame.x + eps) / base.width;
|
||||
clamp[1] = (frame.y + eps) / base.height;
|
||||
clamp[2] = (frame.x + frame.width - eps) / base.width;
|
||||
clamp[3] = (frame.y + frame.height - eps) / base.height;
|
||||
shader.uniforms.uTextureClamp = clamp;
|
||||
var color = this._tempColor;
|
||||
PIXI.utils.hex2rgb(sprite.tint, color);
|
||||
var alpha = sprite.worldAlpha;
|
||||
color[0] *= alpha;
|
||||
color[1] *= alpha;
|
||||
color[2] *= alpha;
|
||||
color[3] = alpha;
|
||||
shader.uniforms.uColor = color;
|
||||
renderer.bindTexture(base, 0, true);
|
||||
quad.vao.draw(this.renderer.gl.TRIANGLES, 6, 0);
|
||||
};
|
||||
PictureRenderer.prototype._isSimpleSprite = function (ts) {
|
||||
var renderer = this.renderer;
|
||||
var tex = ts._texture;
|
||||
var baseTex = tex.baseTexture;
|
||||
var isSimple = baseTex.isPowerOfTwo && tex.frame.width === baseTex.width && tex.frame.height === baseTex.height;
|
||||
if (isSimple) {
|
||||
if (!baseTex._glTextures[renderer.CONTEXT_UID]) {
|
||||
if (baseTex.wrapMode === PIXI.WRAP_MODES.CLAMP) {
|
||||
baseTex.wrapMode = PIXI.WRAP_MODES.REPEAT;
|
||||
}
|
||||
}
|
||||
else {
|
||||
isSimple = baseTex.wrapMode !== PIXI.WRAP_MODES.CLAMP;
|
||||
}
|
||||
}
|
||||
return isSimple;
|
||||
};
|
||||
return PictureRenderer;
|
||||
}(PIXI.ObjectRenderer));
|
||||
extras.PictureRenderer = PictureRenderer;
|
||||
PIXI.WebGLRenderer.registerPlugin('picture', PictureRenderer);
|
||||
PIXI.CanvasRenderer.registerPlugin('picture', PIXI.CanvasSpriteRenderer);
|
||||
})(extras = PIXI.extras || (PIXI.extras = {}));
|
||||
})(PIXI || (PIXI = {}));
|
||||
var PIXI;
|
||||
(function (PIXI) {
|
||||
var extras;
|
||||
(function (extras) {
|
||||
var PictureSprite = (function (_super) {
|
||||
__extends(PictureSprite, _super);
|
||||
function PictureSprite(texture) {
|
||||
_super.call(this, texture);
|
||||
this.pluginName = 'picture';
|
||||
}
|
||||
return PictureSprite;
|
||||
}(PIXI.Sprite));
|
||||
extras.PictureSprite = PictureSprite;
|
||||
})(extras = PIXI.extras || (PIXI.extras = {}));
|
||||
})(PIXI || (PIXI = {}));
|
||||
var PIXI;
|
||||
(function (PIXI) {
|
||||
var extras;
|
||||
(function (extras) {
|
||||
var PictureTilingSprite = (function (_super) {
|
||||
__extends(PictureTilingSprite, _super);
|
||||
function PictureTilingSprite(texture) {
|
||||
_super.call(this, texture);
|
||||
this.pluginName = 'picture';
|
||||
}
|
||||
return PictureTilingSprite;
|
||||
}(extras.TilingSprite));
|
||||
extras.PictureTilingSprite = PictureTilingSprite;
|
||||
})(extras = PIXI.extras || (PIXI.extras = {}));
|
||||
})(PIXI || (PIXI = {}));
|
||||
//# sourceMappingURL=pixi-picture.js.map
|
||||
887
www/js/libs/pixi-tilemap.js
Normal file
887
www/js/libs/pixi-tilemap.js
Normal file
|
|
@ -0,0 +1,887 @@
|
|||
var PIXI;
|
||||
(function (PIXI) {
|
||||
var tilemap;
|
||||
(function (tilemap) {
|
||||
var CanvasTileRenderer = (function () {
|
||||
function CanvasTileRenderer(renderer) {
|
||||
this.tileAnim = [0, 0];
|
||||
this.dontUseTransform = false;
|
||||
this.renderer = renderer;
|
||||
this.tileAnim = [0, 0];
|
||||
}
|
||||
return CanvasTileRenderer;
|
||||
}());
|
||||
tilemap.CanvasTileRenderer = CanvasTileRenderer;
|
||||
PIXI.CanvasRenderer.registerPlugin('tilemap', CanvasTileRenderer);
|
||||
})(tilemap = PIXI.tilemap || (PIXI.tilemap = {}));
|
||||
})(PIXI || (PIXI = {}));
|
||||
var __extends = (this && this.__extends) || (function () {
|
||||
var extendStatics = Object.setPrototypeOf ||
|
||||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
||||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
|
||||
return function (d, b) {
|
||||
extendStatics(d, b);
|
||||
function __() { this.constructor = d; }
|
||||
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
||||
};
|
||||
})();
|
||||
var PIXI;
|
||||
(function (PIXI) {
|
||||
var tilemap;
|
||||
(function (tilemap) {
|
||||
var CompositeRectTileLayer = (function (_super) {
|
||||
__extends(CompositeRectTileLayer, _super);
|
||||
function CompositeRectTileLayer(zIndex, bitmaps, useSquare, texPerChild) {
|
||||
var _this = _super.call(this) || this;
|
||||
_this.shadowColor = new Float32Array([0.0, 0.0, 0.0, 0.5]);
|
||||
_this.modificationMarker = 0;
|
||||
_this._globalMat = null;
|
||||
_this._tempScale = null;
|
||||
_this.initialize.apply(_this, arguments);
|
||||
return _this;
|
||||
}
|
||||
CompositeRectTileLayer.prototype.updateTransform = function () {
|
||||
_super.prototype.displayObjectUpdateTransform.call(this);
|
||||
};
|
||||
CompositeRectTileLayer.prototype.initialize = function (zIndex, bitmaps, useSquare, texPerChild) {
|
||||
this.z = this.zIndex = zIndex;
|
||||
this.useSquare = useSquare;
|
||||
this.texPerChild = texPerChild || 16;
|
||||
if (bitmaps) {
|
||||
this.setBitmaps(bitmaps);
|
||||
}
|
||||
};
|
||||
CompositeRectTileLayer.prototype.setBitmaps = function (bitmaps) {
|
||||
var texPerChild = this.texPerChild;
|
||||
var len1 = this.children.length;
|
||||
var len2 = Math.ceil(bitmaps.length / texPerChild);
|
||||
var i;
|
||||
for (i = 0; i < len1; i++) {
|
||||
this.children[i].textures = bitmaps.slice(i * texPerChild, (i + 1) * texPerChild);
|
||||
}
|
||||
for (i = len1; i < len2; i++) {
|
||||
this.addChild(new tilemap.RectTileLayer(this.zIndex, bitmaps.slice(i * texPerChild, (i + 1) * texPerChild)));
|
||||
}
|
||||
};
|
||||
CompositeRectTileLayer.prototype.clear = function () {
|
||||
for (var i = 0; i < this.children.length; i++)
|
||||
this.children[i].clear();
|
||||
this.modificationMarker = 0;
|
||||
};
|
||||
CompositeRectTileLayer.prototype.addRect = function (num, u, v, x, y, tileWidth, tileHeight) {
|
||||
if (this.children[num] && this.children[num].textures)
|
||||
this.children[num].addRect(0, u, v, x, y, tileWidth, tileHeight);
|
||||
};
|
||||
CompositeRectTileLayer.prototype.addFrame = function (texture_, x, y, animX, animY) {
|
||||
var texture;
|
||||
var layer = null, ind = 0;
|
||||
var children = this.children;
|
||||
if (typeof texture_ === "number") {
|
||||
var childIndex = texture_ / this.texPerChild >> 0;
|
||||
layer = children[childIndex];
|
||||
if (!layer) {
|
||||
layer = children[0];
|
||||
if (!layer) {
|
||||
return false;
|
||||
}
|
||||
ind = 0;
|
||||
}
|
||||
else {
|
||||
ind = texture_ % this.texPerChild;
|
||||
}
|
||||
texture = layer.textures[ind];
|
||||
}
|
||||
else if (typeof texture_ === "string") {
|
||||
texture = PIXI.Texture.fromImage(texture_);
|
||||
}
|
||||
else {
|
||||
texture = texture_;
|
||||
for (var i = 0; i < children.length; i++) {
|
||||
var child = children[i];
|
||||
var tex = child.textures;
|
||||
for (var j = 0; j < tex.length; j++) {
|
||||
if (tex[j].baseTexture == texture.baseTexture) {
|
||||
layer = child;
|
||||
ind = j;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (layer) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!layer) {
|
||||
for (i = 0; i < children.length; i++) {
|
||||
var child = children[i];
|
||||
if (child.textures.length < this.texPerChild) {
|
||||
layer = child;
|
||||
ind = child.textures.length;
|
||||
child.textures.push(texture);
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!layer) {
|
||||
children.push(layer = new tilemap.RectTileLayer(this.zIndex, texture));
|
||||
ind = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
layer.addRect(ind, texture.frame.x, texture.frame.y, x, y, texture.frame.width, texture.frame.height, animX, animY);
|
||||
return true;
|
||||
};
|
||||
;
|
||||
CompositeRectTileLayer.prototype.renderCanvas = function (renderer) {
|
||||
if (!renderer.plugins.tilemap.dontUseTransform) {
|
||||
var wt = this.worldTransform;
|
||||
renderer.context.setTransform(wt.a, wt.b, wt.c, wt.d, wt.tx * renderer.resolution, wt.ty * renderer.resolution);
|
||||
}
|
||||
var layers = this.children;
|
||||
for (var i = 0; i < layers.length; i++)
|
||||
layers[i].renderCanvas(renderer);
|
||||
};
|
||||
;
|
||||
CompositeRectTileLayer.prototype.renderWebGL = function (renderer) {
|
||||
var gl = renderer.gl;
|
||||
var shader = renderer.plugins.tilemap.getShader(this.useSquare);
|
||||
renderer.setObjectRenderer(renderer.plugins.tilemap);
|
||||
renderer.bindShader(shader);
|
||||
this._globalMat = this._globalMat || new PIXI.Matrix();
|
||||
renderer._activeRenderTarget.projectionMatrix.copy(this._globalMat).append(this.worldTransform);
|
||||
shader.uniforms.projectionMatrix = this._globalMat.toArray(true);
|
||||
shader.uniforms.shadowColor = this.shadowColor;
|
||||
if (this.useSquare) {
|
||||
var tempScale = this._tempScale = (this._tempScale || [0, 0]);
|
||||
tempScale[0] = this._globalMat.a >= 0 ? 1 : -1;
|
||||
tempScale[1] = this._globalMat.d < 0 ? 1 : -1;
|
||||
var ps = shader.uniforms.pointScale = tempScale;
|
||||
shader.uniforms.projectionScale = Math.abs(this.worldTransform.a) * renderer.resolution;
|
||||
}
|
||||
var af = shader.uniforms.animationFrame = renderer.plugins.tilemap.tileAnim;
|
||||
var layers = this.children;
|
||||
for (var i = 0; i < layers.length; i++)
|
||||
layers[i].renderWebGL(renderer, this.useSquare);
|
||||
};
|
||||
CompositeRectTileLayer.prototype.isModified = function (anim) {
|
||||
var layers = this.children;
|
||||
if (this.modificationMarker != layers.length) {
|
||||
return true;
|
||||
}
|
||||
for (var i = 0; i < layers.length; i++) {
|
||||
var layer = layers[i];
|
||||
if (layer.modificationMarker != layer.pointsBuf.length ||
|
||||
anim && layer.hasAnim) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
};
|
||||
CompositeRectTileLayer.prototype.clearModify = function () {
|
||||
var layers = this.children;
|
||||
this.modificationMarker = layers.length;
|
||||
for (var i = 0; i < layers.length; i++) {
|
||||
var layer = layers[i];
|
||||
layer.modificationMarker = layer.pointsBuf.length;
|
||||
}
|
||||
};
|
||||
return CompositeRectTileLayer;
|
||||
}(PIXI.Container));
|
||||
tilemap.CompositeRectTileLayer = CompositeRectTileLayer;
|
||||
})(tilemap = PIXI.tilemap || (PIXI.tilemap = {}));
|
||||
})(PIXI || (PIXI = {}));
|
||||
var PIXI;
|
||||
(function (PIXI) {
|
||||
var tilemap;
|
||||
(function (tilemap) {
|
||||
var GraphicsLayer = (function (_super) {
|
||||
__extends(GraphicsLayer, _super);
|
||||
function GraphicsLayer(zIndex) {
|
||||
var _this = _super.call(this) || this;
|
||||
_this.z = _this.zIndex = zIndex;
|
||||
return _this;
|
||||
}
|
||||
GraphicsLayer.prototype.renderCanvas = function (renderer) {
|
||||
var wt = null;
|
||||
if (renderer.plugins.tilemap.dontUseTransform) {
|
||||
wt = this.transform.worldTransform;
|
||||
this.transform.worldTransform = PIXI.Matrix.IDENTITY;
|
||||
}
|
||||
renderer.plugins.graphics.render(this);
|
||||
if (renderer.plugins.tilemap.dontUseTransform) {
|
||||
this.transform.worldTransform = wt;
|
||||
}
|
||||
renderer.context.globalAlpha = 1.0;
|
||||
};
|
||||
GraphicsLayer.prototype.renderWebGL = function (renderer) {
|
||||
if (!this._webGL[renderer.CONTEXT_UID])
|
||||
this.dirty = true;
|
||||
_super.prototype.renderWebGL.call(this, renderer);
|
||||
};
|
||||
GraphicsLayer.prototype.isModified = function (anim) {
|
||||
return false;
|
||||
};
|
||||
GraphicsLayer.prototype.clearModify = function () {
|
||||
};
|
||||
return GraphicsLayer;
|
||||
}(PIXI.Graphics));
|
||||
})(tilemap = PIXI.tilemap || (PIXI.tilemap = {}));
|
||||
})(PIXI || (PIXI = {}));
|
||||
var PIXI;
|
||||
(function (PIXI) {
|
||||
var tilemap;
|
||||
(function (tilemap) {
|
||||
var RectTileLayer = (function (_super) {
|
||||
__extends(RectTileLayer, _super);
|
||||
function RectTileLayer(zIndex, texture) {
|
||||
var _this = _super.call(this) || this;
|
||||
_this.z = 0;
|
||||
_this.zIndex = 0;
|
||||
_this.pointsBuf = [];
|
||||
_this._tempSize = new Float32Array([0, 0]);
|
||||
_this._tempTexSize = 1;
|
||||
_this.modificationMarker = 0;
|
||||
_this.hasAnim = false;
|
||||
_this.vbId = 0;
|
||||
_this.vbBuffer = null;
|
||||
_this.vbArray = null;
|
||||
_this.vbInts = null;
|
||||
_this.initialize(zIndex, texture);
|
||||
return _this;
|
||||
}
|
||||
RectTileLayer.prototype.initialize = function (zIndex, textures) {
|
||||
if (!textures) {
|
||||
textures = [];
|
||||
}
|
||||
else if (!(textures instanceof Array) && textures.baseTexture) {
|
||||
textures = [textures];
|
||||
}
|
||||
this.textures = textures;
|
||||
this.z = this.zIndex = zIndex;
|
||||
this.visible = false;
|
||||
};
|
||||
RectTileLayer.prototype.clear = function () {
|
||||
this.pointsBuf.length = 0;
|
||||
this.modificationMarker = 0;
|
||||
this.hasAnim = false;
|
||||
};
|
||||
RectTileLayer.prototype.renderCanvas = function (renderer) {
|
||||
if (this.textures.length === 0)
|
||||
return;
|
||||
var points = this.pointsBuf;
|
||||
renderer.context.fillStyle = '#000000';
|
||||
for (var i = 0, n = points.length; i < n; i += 9) {
|
||||
var x1 = points[i], y1 = points[i + 1];
|
||||
var x2 = points[i + 2], y2 = points[i + 3];
|
||||
var w = points[i + 4];
|
||||
var h = points[i + 5];
|
||||
x1 += points[i + 6] * renderer.plugins.tilemap.tileAnim[0];
|
||||
y1 += points[i + 7] * renderer.plugins.tilemap.tileAnim[1];
|
||||
var textureId = points[i + 8];
|
||||
if (textureId >= 0) {
|
||||
renderer.context.drawImage(this.textures[textureId].baseTexture.source, x1, y1, w, h, x2, y2, w, h);
|
||||
}
|
||||
else {
|
||||
renderer.context.globalAlpha = 0.5;
|
||||
renderer.context.fillRect(x2, y2, w, h);
|
||||
renderer.context.globalAlpha = 1;
|
||||
}
|
||||
}
|
||||
};
|
||||
RectTileLayer.prototype.addRect = function (textureId, u, v, x, y, tileWidth, tileHeight, animX, animY) {
|
||||
if (animX === void 0) { animX = 0; }
|
||||
if (animY === void 0) { animY = 0; }
|
||||
var pb = this.pointsBuf;
|
||||
this.hasAnim = this.hasAnim || animX > 0 || animY > 0;
|
||||
if (tileWidth == tileHeight) {
|
||||
pb.push(u);
|
||||
pb.push(v);
|
||||
pb.push(x);
|
||||
pb.push(y);
|
||||
pb.push(tileWidth);
|
||||
pb.push(tileHeight);
|
||||
pb.push(animX | 0);
|
||||
pb.push(animY | 0);
|
||||
pb.push(textureId);
|
||||
}
|
||||
else {
|
||||
var i;
|
||||
if (tileWidth % tileHeight === 0) {
|
||||
for (i = 0; i < tileWidth / tileHeight; i++) {
|
||||
pb.push(u + i * tileHeight);
|
||||
pb.push(v);
|
||||
pb.push(x + i * tileHeight);
|
||||
pb.push(y);
|
||||
pb.push(tileHeight);
|
||||
pb.push(tileHeight);
|
||||
pb.push(animX | 0);
|
||||
pb.push(animY | 0);
|
||||
pb.push(textureId);
|
||||
}
|
||||
}
|
||||
else if (tileHeight % tileWidth === 0) {
|
||||
for (i = 0; i < tileHeight / tileWidth; i++) {
|
||||
pb.push(u);
|
||||
pb.push(v + i * tileWidth);
|
||||
pb.push(x);
|
||||
pb.push(y + i * tileWidth);
|
||||
pb.push(tileWidth);
|
||||
pb.push(tileWidth);
|
||||
pb.push(animX | 0);
|
||||
pb.push(animY | 0);
|
||||
pb.push(textureId);
|
||||
}
|
||||
}
|
||||
else {
|
||||
pb.push(u);
|
||||
pb.push(v);
|
||||
pb.push(x);
|
||||
pb.push(y);
|
||||
pb.push(tileWidth);
|
||||
pb.push(tileHeight);
|
||||
pb.push(animX | 0);
|
||||
pb.push(animY | 0);
|
||||
pb.push(textureId);
|
||||
}
|
||||
}
|
||||
};
|
||||
;
|
||||
RectTileLayer.prototype.renderWebGL = function (renderer, useSquare) {
|
||||
if (useSquare === void 0) { useSquare = false; }
|
||||
var points = this.pointsBuf;
|
||||
if (points.length === 0)
|
||||
return;
|
||||
var rectsCount = points.length / 9;
|
||||
var tile = renderer.plugins.tilemap;
|
||||
var gl = renderer.gl;
|
||||
if (!useSquare) {
|
||||
tile.checkIndexBuffer(rectsCount);
|
||||
}
|
||||
var shader = tile.getShader(useSquare);
|
||||
var textures = this.textures;
|
||||
if (textures.length === 0)
|
||||
return;
|
||||
var len = textures.length;
|
||||
if (this._tempTexSize < shader.maxTextures) {
|
||||
this._tempTexSize = shader.maxTextures;
|
||||
this._tempSize = new Float32Array(2 * shader.maxTextures);
|
||||
}
|
||||
for (var i = 0; i < len; i++) {
|
||||
if (!textures[i] || !textures[i].valid)
|
||||
return;
|
||||
var texture = textures[i].baseTexture;
|
||||
}
|
||||
tile.bindTextures(renderer, shader, textures);
|
||||
var vb = tile.getVb(this.vbId);
|
||||
if (!vb) {
|
||||
vb = tile.createVb(useSquare);
|
||||
this.vbId = vb.id;
|
||||
this.vbBuffer = null;
|
||||
this.modificationMarker = 0;
|
||||
}
|
||||
var vao = vb.vao;
|
||||
renderer.bindVao(vao);
|
||||
var vertexBuf = vb.vb;
|
||||
vertexBuf.bind();
|
||||
var vertices = rectsCount * shader.vertPerQuad;
|
||||
if (vertices === 0)
|
||||
return;
|
||||
if (this.modificationMarker != vertices) {
|
||||
this.modificationMarker = vertices;
|
||||
var vs = shader.stride * vertices;
|
||||
if (!this.vbBuffer || this.vbBuffer.byteLength < vs) {
|
||||
var bk = shader.stride;
|
||||
while (bk < vs) {
|
||||
bk *= 2;
|
||||
}
|
||||
this.vbBuffer = new ArrayBuffer(bk);
|
||||
this.vbArray = new Float32Array(this.vbBuffer);
|
||||
this.vbInts = new Uint32Array(this.vbBuffer);
|
||||
vertexBuf.upload(this.vbBuffer, 0, true);
|
||||
}
|
||||
var arr = this.vbArray, ints = this.vbInts;
|
||||
var sz = 0;
|
||||
var textureId, shiftU, shiftV;
|
||||
if (useSquare) {
|
||||
for (i = 0; i < points.length; i += 9) {
|
||||
textureId = (points[i + 8] >> 2);
|
||||
shiftU = 1024 * (points[i + 8] & 1);
|
||||
shiftV = 1024 * ((points[i + 8] >> 1) & 1);
|
||||
arr[sz++] = points[i + 2];
|
||||
arr[sz++] = points[i + 3];
|
||||
arr[sz++] = points[i + 0] + shiftU;
|
||||
arr[sz++] = points[i + 1] + shiftV;
|
||||
arr[sz++] = points[i + 4];
|
||||
arr[sz++] = points[i + 6];
|
||||
arr[sz++] = points[i + 7];
|
||||
arr[sz++] = textureId;
|
||||
}
|
||||
}
|
||||
else {
|
||||
var tint = -1;
|
||||
for (i = 0; i < points.length; i += 9) {
|
||||
var eps = 0.5;
|
||||
textureId = (points[i + 8] >> 2);
|
||||
shiftU = 1024 * (points[i + 8] & 1);
|
||||
shiftV = 1024 * ((points[i + 8] >> 1) & 1);
|
||||
var x = points[i + 2], y = points[i + 3];
|
||||
var w = points[i + 4], h = points[i + 5];
|
||||
var u = points[i] + shiftU, v = points[i + 1] + shiftV;
|
||||
var animX = points[i + 6], animY = points[i + 7];
|
||||
arr[sz++] = x;
|
||||
arr[sz++] = y;
|
||||
arr[sz++] = u;
|
||||
arr[sz++] = v;
|
||||
arr[sz++] = u + eps;
|
||||
arr[sz++] = v + eps;
|
||||
arr[sz++] = u + w - eps;
|
||||
arr[sz++] = v + h - eps;
|
||||
arr[sz++] = animX;
|
||||
arr[sz++] = animY;
|
||||
arr[sz++] = textureId;
|
||||
arr[sz++] = x + w;
|
||||
arr[sz++] = y;
|
||||
arr[sz++] = u + w;
|
||||
arr[sz++] = v;
|
||||
arr[sz++] = u + eps;
|
||||
arr[sz++] = v + eps;
|
||||
arr[sz++] = u + w - eps;
|
||||
arr[sz++] = v + h - eps;
|
||||
arr[sz++] = animX;
|
||||
arr[sz++] = animY;
|
||||
arr[sz++] = textureId;
|
||||
arr[sz++] = x + w;
|
||||
arr[sz++] = y + h;
|
||||
arr[sz++] = u + w;
|
||||
arr[sz++] = v + h;
|
||||
arr[sz++] = u + eps;
|
||||
arr[sz++] = v + eps;
|
||||
arr[sz++] = u + w - eps;
|
||||
arr[sz++] = v + h - eps;
|
||||
arr[sz++] = animX;
|
||||
arr[sz++] = animY;
|
||||
arr[sz++] = textureId;
|
||||
arr[sz++] = x;
|
||||
arr[sz++] = y + h;
|
||||
arr[sz++] = u;
|
||||
arr[sz++] = v + h;
|
||||
arr[sz++] = u + eps;
|
||||
arr[sz++] = v + eps;
|
||||
arr[sz++] = u + w - eps;
|
||||
arr[sz++] = v + h - eps;
|
||||
arr[sz++] = animX;
|
||||
arr[sz++] = animY;
|
||||
arr[sz++] = textureId;
|
||||
}
|
||||
}
|
||||
vertexBuf.upload(arr, 0, true);
|
||||
}
|
||||
if (useSquare)
|
||||
gl.drawArrays(gl.POINTS, 0, vertices);
|
||||
else
|
||||
gl.drawElements(gl.TRIANGLES, rectsCount * 6, gl.UNSIGNED_SHORT, 0);
|
||||
};
|
||||
return RectTileLayer;
|
||||
}(PIXI.Container));
|
||||
tilemap.RectTileLayer = RectTileLayer;
|
||||
})(tilemap = PIXI.tilemap || (PIXI.tilemap = {}));
|
||||
})(PIXI || (PIXI = {}));
|
||||
var PIXI;
|
||||
(function (PIXI) {
|
||||
var tilemap;
|
||||
(function (tilemap) {
|
||||
var rectShaderFrag = "varying vec2 vTextureCoord;\nvarying vec4 vFrame;\nvarying float vTextureId;\nuniform vec4 shadowColor;\nuniform sampler2D uSamplers[%count%];\nuniform vec2 uSamplerSize[%count%];\n\nvoid main(void){\n vec2 textureCoord = clamp(vTextureCoord, vFrame.xy, vFrame.zw);\n float textureId = floor(vTextureId + 0.5);\n\n vec4 color;\n %forloop%\n gl_FragColor = color;\n}";
|
||||
var rectShaderVert = "\nattribute vec2 aVertexPosition;\nattribute vec2 aTextureCoord;\nattribute vec4 aFrame;\nattribute vec2 aAnim;\nattribute float aTextureId;\n\nuniform mat3 projectionMatrix;\nuniform vec2 animationFrame;\n\nvarying vec2 vTextureCoord;\nvarying float vTextureId;\nvarying vec4 vFrame;\n\nvoid main(void){\n gl_Position = vec4((projectionMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);\n vec2 anim = aAnim * animationFrame;\n vTextureCoord = aTextureCoord + anim;\n vFrame = aFrame + vec4(anim, anim);\n vTextureId = aTextureId;\n}\n";
|
||||
var TilemapShader = (function (_super) {
|
||||
__extends(TilemapShader, _super);
|
||||
function TilemapShader(gl, maxTextures, shaderVert, shaderFrag) {
|
||||
var _this = _super.call(this, gl, shaderVert, shaderFrag) || this;
|
||||
_this.maxTextures = 0;
|
||||
_this.maxTextures = maxTextures;
|
||||
tilemap.shaderGenerator.fillSamplers(_this, _this.maxTextures);
|
||||
return _this;
|
||||
}
|
||||
return TilemapShader;
|
||||
}(PIXI.Shader));
|
||||
tilemap.TilemapShader = TilemapShader;
|
||||
var RectTileShader = (function (_super) {
|
||||
__extends(RectTileShader, _super);
|
||||
function RectTileShader(gl, maxTextures) {
|
||||
var _this = _super.call(this, gl, maxTextures, rectShaderVert, tilemap.shaderGenerator.generateFragmentSrc(maxTextures, rectShaderFrag)) || this;
|
||||
_this.vertSize = 11;
|
||||
_this.vertPerQuad = 4;
|
||||
_this.stride = _this.vertSize * 4;
|
||||
tilemap.shaderGenerator.fillSamplers(_this, _this.maxTextures);
|
||||
return _this;
|
||||
}
|
||||
RectTileShader.prototype.createVao = function (renderer, vb) {
|
||||
var gl = renderer.gl;
|
||||
return renderer.createVao()
|
||||
.addIndex(this.indexBuffer)
|
||||
.addAttribute(vb, this.attributes.aVertexPosition, gl.FLOAT, false, this.stride, 0)
|
||||
.addAttribute(vb, this.attributes.aTextureCoord, gl.FLOAT, false, this.stride, 2 * 4)
|
||||
.addAttribute(vb, this.attributes.aFrame, gl.FLOAT, false, this.stride, 4 * 4)
|
||||
.addAttribute(vb, this.attributes.aAnim, gl.FLOAT, false, this.stride, 8 * 4)
|
||||
.addAttribute(vb, this.attributes.aTextureId, gl.FLOAT, false, this.stride, 10 * 4);
|
||||
};
|
||||
return RectTileShader;
|
||||
}(TilemapShader));
|
||||
tilemap.RectTileShader = RectTileShader;
|
||||
})(tilemap = PIXI.tilemap || (PIXI.tilemap = {}));
|
||||
})(PIXI || (PIXI = {}));
|
||||
var PIXI;
|
||||
(function (PIXI) {
|
||||
var tilemap;
|
||||
(function (tilemap) {
|
||||
var shaderGenerator;
|
||||
(function (shaderGenerator) {
|
||||
function fillSamplers(shader, maxTextures) {
|
||||
var sampleValues = [];
|
||||
for (var i = 0; i < maxTextures; i++) {
|
||||
sampleValues[i] = i;
|
||||
}
|
||||
shader.bind();
|
||||
shader.uniforms.uSamplers = sampleValues;
|
||||
var samplerSize = [];
|
||||
for (i = 0; i < maxTextures; i++) {
|
||||
samplerSize.push(1.0 / 2048);
|
||||
samplerSize.push(1.0 / 2048);
|
||||
}
|
||||
shader.uniforms.uSamplerSize = samplerSize;
|
||||
}
|
||||
shaderGenerator.fillSamplers = fillSamplers;
|
||||
function generateFragmentSrc(maxTextures, fragmentSrc) {
|
||||
return fragmentSrc.replace(/%count%/gi, maxTextures + "")
|
||||
.replace(/%forloop%/gi, this.generateSampleSrc(maxTextures));
|
||||
}
|
||||
shaderGenerator.generateFragmentSrc = generateFragmentSrc;
|
||||
function generateSampleSrc(maxTextures) {
|
||||
var src = '';
|
||||
src += '\n';
|
||||
src += '\n';
|
||||
src += 'if(vTextureId <= -1.0) {';
|
||||
src += '\n\tcolor = shadowColor;';
|
||||
src += '\n}';
|
||||
for (var i = 0; i < maxTextures; i++) {
|
||||
src += '\nelse ';
|
||||
if (i < maxTextures - 1) {
|
||||
src += 'if(textureId == ' + i + '.0)';
|
||||
}
|
||||
src += '\n{';
|
||||
src += '\n\tcolor = texture2D(uSamplers[' + i + '], textureCoord * uSamplerSize[' + i + ']);';
|
||||
src += '\n}';
|
||||
}
|
||||
src += '\n';
|
||||
src += '\n';
|
||||
return src;
|
||||
}
|
||||
shaderGenerator.generateSampleSrc = generateSampleSrc;
|
||||
})(shaderGenerator = tilemap.shaderGenerator || (tilemap.shaderGenerator = {}));
|
||||
})(tilemap = PIXI.tilemap || (PIXI.tilemap = {}));
|
||||
})(PIXI || (PIXI = {}));
|
||||
var PIXI;
|
||||
(function (PIXI) {
|
||||
var tilemap;
|
||||
(function (tilemap) {
|
||||
var squareShaderVert = "\nattribute vec2 aVertexPosition;\nattribute vec2 aTextureCoord;\nattribute vec2 aAnim;\nattribute float aTextureId;\nattribute float aSize;\n\nuniform mat3 projectionMatrix;\nuniform vec2 samplerSize;\nuniform vec2 animationFrame;\nuniform float projectionScale;\n\nvarying vec2 vTextureCoord;\nvarying float vSize;\nvarying float vTextureId;\n\nvoid main(void){\n gl_Position = vec4((projectionMatrix * vec3(aVertexPosition + aSize * 0.5, 1.0)).xy, 0.0, 1.0);\n gl_PointSize = aSize * projectionScale;\n vTextureCoord = aTextureCoord + aAnim * animationFrame;\n vTextureId = aTextureId;\n vSize = aSize;\n}\n";
|
||||
var squareShaderFrag = "\nvarying vec2 vTextureCoord;\nvarying float vSize;\nvarying float vTextureId;\n\nuniform vec4 shadowColor;\nuniform sampler2D uSamplers[%count%];\nuniform vec2 uSamplerSize[%count%];\nuniform vec2 pointScale;\n\nvoid main(void){\n float margin = 0.5 / vSize;\n vec2 pointCoord = (gl_PointCoord - 0.5) * pointScale + 0.5;\n vec2 clamped = vec2(clamp(pointCoord.x, margin, 1.0 - margin), clamp(pointCoord.y, margin, 1.0 - margin));\n vec2 textureCoord = pointCoord * vSize + vTextureCoord;\n float textureId = vTextureId;\n vec4 color;\n %forloop%\n gl_FragColor = color;\n}\n\n";
|
||||
var SquareTileShader = (function (_super) {
|
||||
__extends(SquareTileShader, _super);
|
||||
function SquareTileShader(gl, maxTextures) {
|
||||
var _this = _super.call(this, gl, maxTextures, squareShaderVert, tilemap.shaderGenerator.generateFragmentSrc(maxTextures, squareShaderFrag)) || this;
|
||||
_this.vertSize = 8;
|
||||
_this.vertPerQuad = 1;
|
||||
_this.stride = _this.vertSize * 4;
|
||||
_this.maxTextures = maxTextures;
|
||||
tilemap.shaderGenerator.fillSamplers(_this, _this.maxTextures);
|
||||
return _this;
|
||||
}
|
||||
SquareTileShader.prototype.createVao = function (renderer, vb) {
|
||||
var gl = renderer.gl;
|
||||
return renderer.createVao()
|
||||
.addIndex(this.indexBuffer)
|
||||
.addAttribute(vb, this.attributes.aVertexPosition, gl.FLOAT, false, this.stride, 0)
|
||||
.addAttribute(vb, this.attributes.aTextureCoord, gl.FLOAT, false, this.stride, 2 * 4)
|
||||
.addAttribute(vb, this.attributes.aSize, gl.FLOAT, false, this.stride, 4 * 4)
|
||||
.addAttribute(vb, this.attributes.aAnim, gl.FLOAT, false, this.stride, 5 * 4)
|
||||
.addAttribute(vb, this.attributes.aTextureId, gl.FLOAT, false, this.stride, 7 * 4);
|
||||
};
|
||||
;
|
||||
return SquareTileShader;
|
||||
}(tilemap.TilemapShader));
|
||||
tilemap.SquareTileShader = SquareTileShader;
|
||||
})(tilemap = PIXI.tilemap || (PIXI.tilemap = {}));
|
||||
})(PIXI || (PIXI = {}));
|
||||
var PIXI;
|
||||
(function (PIXI) {
|
||||
var tilemap;
|
||||
(function (tilemap) {
|
||||
var glCore = PIXI.glCore;
|
||||
function _hackSubImage(tex, sprite, clearBuffer, clearWidth, clearHeight) {
|
||||
var gl = tex.gl;
|
||||
var baseTex = sprite.texture.baseTexture;
|
||||
if (clearBuffer && clearWidth > 0 && clearHeight > 0) {
|
||||
gl.texSubImage2D(gl.TEXTURE_2D, 0, sprite.position.x, sprite.position.y, clearWidth, clearHeight, tex.format, tex.type, clearBuffer);
|
||||
}
|
||||
gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, 1);
|
||||
gl.texSubImage2D(gl.TEXTURE_2D, 0, sprite.position.x, sprite.position.y, tex.format, tex.type, baseTex.source);
|
||||
}
|
||||
var TileRenderer = (function (_super) {
|
||||
__extends(TileRenderer, _super);
|
||||
function TileRenderer(renderer) {
|
||||
var _this = _super.call(this, renderer) || this;
|
||||
_this.vbs = {};
|
||||
_this.indices = new Uint16Array(0);
|
||||
_this.lastTimeCheck = 0;
|
||||
_this.tileAnim = [0, 0];
|
||||
_this.maxTextures = 4;
|
||||
_this.texLoc = [];
|
||||
return _this;
|
||||
}
|
||||
TileRenderer.prototype.onContextChange = function () {
|
||||
var gl = this.renderer.gl;
|
||||
var maxTextures = this.maxTextures;
|
||||
this.rectShader = new tilemap.RectTileShader(gl, maxTextures);
|
||||
this.squareShader = new tilemap.SquareTileShader(gl, maxTextures);
|
||||
this.checkIndexBuffer(2000);
|
||||
this.rectShader.indexBuffer = this.indexBuffer;
|
||||
this.squareShader.indexBuffer = this.indexBuffer;
|
||||
this.vbs = {};
|
||||
this.glTextures = [];
|
||||
this.boundSprites = [];
|
||||
this.initBounds();
|
||||
};
|
||||
TileRenderer.prototype.initBounds = function () {
|
||||
var gl = this.renderer.gl;
|
||||
var tempCanvas = document.createElement('canvas');
|
||||
tempCanvas.width = 2048;
|
||||
tempCanvas.height = 2048;
|
||||
for (var i = 0; i < this.maxTextures; i++) {
|
||||
var rt = PIXI.RenderTexture.create(2048, 2048);
|
||||
rt.baseTexture.premultipliedAlpha = true;
|
||||
rt.baseTexture.scaleMode = TileRenderer.SCALE_MODE;
|
||||
rt.baseTexture.wrapMode = PIXI.WRAP_MODES.CLAMP;
|
||||
this.renderer.textureManager.updateTexture(rt);
|
||||
this.glTextures.push(rt);
|
||||
var bs = [];
|
||||
for (var j = 0; j < 4; j++) {
|
||||
var spr = new PIXI.Sprite();
|
||||
spr.position.x = 1024 * (j & 1);
|
||||
spr.position.y = 1024 * (j >> 1);
|
||||
bs.push(spr);
|
||||
}
|
||||
this.boundSprites.push(bs);
|
||||
}
|
||||
};
|
||||
TileRenderer.prototype.bindTextures = function (renderer, shader, textures) {
|
||||
var bounds = this.boundSprites;
|
||||
var glts = this.glTextures;
|
||||
var len = textures.length;
|
||||
var maxTextures = this.maxTextures;
|
||||
if (len > 4 * maxTextures) {
|
||||
return;
|
||||
}
|
||||
var doClear = TileRenderer.DO_CLEAR;
|
||||
if (doClear && !this._clearBuffer) {
|
||||
this._clearBuffer = new Uint8Array(1024 * 1024 * 4);
|
||||
}
|
||||
var i;
|
||||
for (i = 0; i < len; i++) {
|
||||
var texture = textures[i];
|
||||
if (!texture || !textures[i].valid)
|
||||
continue;
|
||||
var bs = bounds[i >> 2][i & 3];
|
||||
if (!bs.texture ||
|
||||
bs.texture.baseTexture !== texture.baseTexture) {
|
||||
bs.texture = texture;
|
||||
var glt = glts[i >> 2];
|
||||
renderer.bindTexture(glt, 0, true);
|
||||
if (doClear) {
|
||||
_hackSubImage(glt.baseTexture._glTextures[renderer.CONTEXT_UID], bs, this._clearBuffer, 1024, 1024);
|
||||
}
|
||||
else {
|
||||
_hackSubImage(glt.baseTexture._glTextures[renderer.CONTEXT_UID], bs);
|
||||
}
|
||||
}
|
||||
}
|
||||
this.texLoc.length = 0;
|
||||
for (i = 0; i < maxTextures; i++) {
|
||||
this.texLoc.push(renderer.bindTexture(glts[i], i, true));
|
||||
}
|
||||
shader.uniforms.uSamplers = this.texLoc;
|
||||
};
|
||||
TileRenderer.prototype.checkLeaks = function () {
|
||||
var now = Date.now();
|
||||
var old = now - 10000;
|
||||
if (this.lastTimeCheck < old ||
|
||||
this.lastTimeCheck > now) {
|
||||
this.lastTimeCheck = now;
|
||||
var vbs = this.vbs;
|
||||
for (var key in vbs) {
|
||||
if (vbs[key].lastTimeAccess < old) {
|
||||
this.removeVb(key);
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
;
|
||||
TileRenderer.prototype.start = function () {
|
||||
this.renderer.state.setBlendMode(PIXI.BLEND_MODES.NORMAL);
|
||||
};
|
||||
TileRenderer.prototype.getVb = function (id) {
|
||||
this.checkLeaks();
|
||||
var vb = this.vbs[id];
|
||||
if (vb) {
|
||||
vb.lastAccessTime = Date.now();
|
||||
return vb;
|
||||
}
|
||||
return null;
|
||||
};
|
||||
TileRenderer.prototype.createVb = function (useSquare) {
|
||||
var id = ++TileRenderer.vbAutoincrement;
|
||||
var shader = this.getShader(useSquare);
|
||||
var gl = this.renderer.gl;
|
||||
var vb = PIXI.glCore.GLBuffer.createVertexBuffer(gl, null, gl.STREAM_DRAW);
|
||||
var stuff = {
|
||||
id: id,
|
||||
vb: vb,
|
||||
vao: shader.createVao(this.renderer, vb),
|
||||
lastTimeAccess: Date.now(),
|
||||
useSquare: useSquare,
|
||||
shader: shader
|
||||
};
|
||||
this.vbs[id] = stuff;
|
||||
return stuff;
|
||||
};
|
||||
TileRenderer.prototype.removeVb = function (id) {
|
||||
if (this.vbs[id]) {
|
||||
this.vbs[id].vb.destroy();
|
||||
this.vbs[id].vao.destroy();
|
||||
delete this.vbs[id];
|
||||
}
|
||||
};
|
||||
TileRenderer.prototype.checkIndexBuffer = function (size) {
|
||||
var totalIndices = size * 6;
|
||||
var indices = this.indices;
|
||||
if (totalIndices <= indices.length) {
|
||||
return;
|
||||
}
|
||||
var len = indices.length || totalIndices;
|
||||
while (len < totalIndices) {
|
||||
len <<= 1;
|
||||
}
|
||||
indices = new Uint16Array(len);
|
||||
this.indices = indices;
|
||||
for (var i = 0, j = 0; i + 5 < indices.length; i += 6, j += 4) {
|
||||
indices[i + 0] = j + 0;
|
||||
indices[i + 1] = j + 1;
|
||||
indices[i + 2] = j + 2;
|
||||
indices[i + 3] = j + 0;
|
||||
indices[i + 4] = j + 2;
|
||||
indices[i + 5] = j + 3;
|
||||
}
|
||||
if (this.indexBuffer) {
|
||||
this.indexBuffer.upload(indices);
|
||||
}
|
||||
else {
|
||||
var gl = this.renderer.gl;
|
||||
this.indexBuffer = glCore.GLBuffer.createIndexBuffer(gl, this.indices, gl.STATIC_DRAW);
|
||||
}
|
||||
};
|
||||
TileRenderer.prototype.getShader = function (useSquare) {
|
||||
return useSquare ? this.squareShader : this.rectShader;
|
||||
};
|
||||
TileRenderer.prototype.destroy = function () {
|
||||
_super.prototype.destroy.call(this);
|
||||
this.rectShader.destroy();
|
||||
this.squareShader.destroy();
|
||||
this.rectShader = null;
|
||||
this.squareShader = null;
|
||||
};
|
||||
;
|
||||
return TileRenderer;
|
||||
}(PIXI.ObjectRenderer));
|
||||
TileRenderer.vbAutoincrement = 0;
|
||||
TileRenderer.SCALE_MODE = PIXI.SCALE_MODES.LINEAR;
|
||||
TileRenderer.DO_CLEAR = false;
|
||||
tilemap.TileRenderer = TileRenderer;
|
||||
PIXI.WebGLRenderer.registerPlugin('tilemap', TileRenderer);
|
||||
})(tilemap = PIXI.tilemap || (PIXI.tilemap = {}));
|
||||
})(PIXI || (PIXI = {}));
|
||||
var PIXI;
|
||||
(function (PIXI) {
|
||||
var tilemap;
|
||||
(function (tilemap_1) {
|
||||
var ZLayer = (function (_super) {
|
||||
__extends(ZLayer, _super);
|
||||
function ZLayer(tilemap, zIndex) {
|
||||
var _this = _super.call(this) || this;
|
||||
_this._lastAnimationFrame = -1;
|
||||
_this.tilemap = tilemap;
|
||||
_this.z = zIndex;
|
||||
return _this;
|
||||
}
|
||||
ZLayer.prototype.clear = function () {
|
||||
var layers = this.children;
|
||||
for (var i = 0; i < layers.length; i++)
|
||||
layers[i].clear();
|
||||
this._previousLayers = 0;
|
||||
};
|
||||
ZLayer.prototype.cacheIfDirty = function () {
|
||||
var tilemap = this.tilemap;
|
||||
var layers = this.children;
|
||||
var modified = this._previousLayers != layers.length;
|
||||
this._previousLayers = layers.length;
|
||||
var buf = this.canvasBuffer;
|
||||
var tempRender = this._tempRender;
|
||||
if (!buf) {
|
||||
buf = this.canvasBuffer = document.createElement('canvas');
|
||||
tempRender = this._tempRender = new PIXI.CanvasRenderer(100, 100, { view: buf });
|
||||
tempRender.context = tempRender.rootContext;
|
||||
tempRender.plugins.tilemap.dontUseTransform = true;
|
||||
}
|
||||
if (buf.width != tilemap._layerWidth ||
|
||||
buf.height != tilemap._layerHeight) {
|
||||
buf.width = tilemap._layerWidth;
|
||||
buf.height = tilemap._layerHeight;
|
||||
modified = true;
|
||||
}
|
||||
var i;
|
||||
if (!modified) {
|
||||
for (i = 0; i < layers.length; i++) {
|
||||
if (layers[i].isModified(this._lastAnimationFrame != tilemap.animationFrame)) {
|
||||
modified = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
this._lastAnimationFrame = tilemap.animationFrame;
|
||||
if (modified) {
|
||||
if (tilemap._hackRenderer) {
|
||||
tilemap._hackRenderer(tempRender);
|
||||
}
|
||||
tempRender.context.clearRect(0, 0, buf.width, buf.height);
|
||||
for (i = 0; i < layers.length; i++) {
|
||||
layers[i].clearModify();
|
||||
layers[i].renderCanvas(tempRender);
|
||||
}
|
||||
}
|
||||
this.layerTransform = this.worldTransform;
|
||||
for (i = 0; i < layers.length; i++) {
|
||||
this.layerTransform = layers[i].worldTransform;
|
||||
break;
|
||||
}
|
||||
};
|
||||
;
|
||||
ZLayer.prototype.renderCanvas = function (renderer) {
|
||||
this.cacheIfDirty();
|
||||
var wt = this.layerTransform;
|
||||
renderer.context.setTransform(wt.a, wt.b, wt.c, wt.d, wt.tx * renderer.resolution, wt.ty * renderer.resolution);
|
||||
var tilemap = this.tilemap;
|
||||
renderer.context.drawImage(this.canvasBuffer, 0, 0);
|
||||
};
|
||||
;
|
||||
return ZLayer;
|
||||
}(PIXI.Container));
|
||||
tilemap_1.ZLayer = ZLayer;
|
||||
})(tilemap = PIXI.tilemap || (PIXI.tilemap = {}));
|
||||
})(PIXI || (PIXI = {}));
|
||||
//# sourceMappingURL=pixi-tilemap.js.map
|
||||
40318
www/js/libs/pixi.js
Normal file
40318
www/js/libs/pixi.js
Normal file
File diff suppressed because it is too large
Load diff
9
www/js/main.js
Normal file
9
www/js/main.js
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
//=============================================================================
|
||||
// main.js
|
||||
//=============================================================================
|
||||
|
||||
PluginManager.setup($plugins);
|
||||
|
||||
window.onload = function() {
|
||||
SceneManager.run(Scene_Boot);
|
||||
};
|
||||
3716
www/js/plugins.js
Normal file
3716
www/js/plugins.js
Normal file
File diff suppressed because one or more lines are too long
17
www/js/plugins/---------------------.js
Normal file
17
www/js/plugins/---------------------.js
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
//=============================================================================
|
||||
// -------------- / N---------------------.js
|
||||
//=============================================================================
|
||||
|
||||
/*:ja
|
||||
* @plugindesc -----------------------------------------------------------
|
||||
* @---------------------
|
||||
*
|
||||
* @help このプラグインには、プラグインコマンドはありません。
|
||||
*/
|
||||
|
||||
/*:en
|
||||
* @plugindesc -----------------------------------------------------------
|
||||
* @---------------------
|
||||
*
|
||||
* @help This plugin does not provide plugin commands.
|
||||
*/
|
||||
2298
www/js/plugins/AB_EnemyHate.js
Normal file
2298
www/js/plugins/AB_EnemyHate.js
Normal file
File diff suppressed because it is too large
Load diff
292
www/js/plugins/AdditionalDescription.js
Normal file
292
www/js/plugins/AdditionalDescription.js
Normal file
|
|
@ -0,0 +1,292 @@
|
|||
//=============================================================================
|
||||
// AdditionalDescription.js
|
||||
// ----------------------------------------------------------------------------
|
||||
// (C)2016 Triacontane
|
||||
// This software is released under the MIT License.
|
||||
// http://opensource.org/licenses/mit-license.php
|
||||
// ----------------------------------------------------------------------------
|
||||
// Version
|
||||
// 2.0.1 2020/10/17 キーコードの仕様を撤廃
|
||||
// 英語ヘルプを作成
|
||||
// 2.0.0 2020/10/17 初期表示時に追加テキストの方が表示される設定を追加
|
||||
// プラグインの型指定機能に対応
|
||||
// 1.1.4 2017/01/12 メモ欄の値が空で設定された場合にエラーが発生するかもしれない問題を修正
|
||||
// 1.1.3 2016/09/20 説明文の文字に「>」「<」を表示できるようエスケープ処理を追加
|
||||
// 1.1.2 2016/09/07 同じ説明文のアイテムが連続していたときに切り替えメッセージが表示されない問題を修正
|
||||
// 1.1.1 2016/09/06 親のウィンドウがアクティブなときのみ操作できるよう修正
|
||||
// 1.1.0 2016/09/01 マウス操作、タッチ操作でも切り替えられる機能を追加
|
||||
// 切り替え中にキャンセルしたときに描画内容が一部残ってしまう不具合を修正
|
||||
// 1.0.0 2016/09/01 初版
|
||||
// ----------------------------------------------------------------------------
|
||||
// [Blog] : https://triacontane.blogspot.jp/
|
||||
// [Twitter]: https://twitter.com/triacontane/
|
||||
// [GitHub] : https://github.com/triacontane/
|
||||
//=============================================================================
|
||||
|
||||
/*:
|
||||
* @plugindesc AdditionalDescription
|
||||
* @author triacontane
|
||||
*
|
||||
* @param ButtonName
|
||||
* @desc The name of the button to switch help.
|
||||
* @default shift
|
||||
* @type combo
|
||||
* @option shift
|
||||
* @option control
|
||||
* @option tab
|
||||
*
|
||||
* @param ChangePage
|
||||
* @desc Page change sign string that appears in the lower right corner of the window.
|
||||
* @default Push Shift
|
||||
*
|
||||
* @param ValidTouch
|
||||
* @desc You can also switch windows by touching or left-clicking the help window.
|
||||
* @default true
|
||||
* @type boolean
|
||||
*
|
||||
* @param InitialReverse
|
||||
* @desc The page is displayed in the initial view with the pages switched.
|
||||
* @default false
|
||||
* @type boolean
|
||||
*
|
||||
* @help You can add a second page to the help window
|
||||
* to display any information you want.
|
||||
* Replace it with the specified key.
|
||||
*
|
||||
* Please write the following in the notes section of the item/skill database.
|
||||
* <ADDescription:sampleText> # The string "sampleText" is displayed.
|
||||
* <ADScript:sampleScript> # The evaluation result of "sampleScript" is displayed.
|
||||
*
|
||||
* In both cases, a set of control characters are available.
|
||||
* In addition, the target data can be referenced in the script by a local variable called "item".
|
||||
* Database information such as consumption MP and price can be displayed dynamically.
|
||||
*/
|
||||
|
||||
/*:ja
|
||||
* @plugindesc ヘルプ説明追加プラグイン
|
||||
* @author トリアコンタン
|
||||
*
|
||||
* @param ButtonName
|
||||
* @text ボタン名
|
||||
* @desc ヘルプを切り替えるボタン名です。
|
||||
* @default shift
|
||||
* @type combo
|
||||
* @option shift
|
||||
* @option control
|
||||
* @option tab
|
||||
*
|
||||
* @param ChangePage
|
||||
* @text ページ切り替え
|
||||
* @desc ウィンドウの右下に表示されるページ切り替えサイン文字列です。制御文字が使用できます。
|
||||
* @default Push Shift
|
||||
*
|
||||
* @param ValidTouch
|
||||
* @text タッチ操作有効
|
||||
* @desc ヘルプウィンドウをタッチ or 左クリックすることでもウィンドウを切り替えることができます。
|
||||
* @default true
|
||||
* @type boolean
|
||||
*
|
||||
* @param InitialReverse
|
||||
* @text 初期状態で反転
|
||||
* @desc 初期表示でページ切り替えされた状態で表示されます。
|
||||
* @default false
|
||||
* @type boolean
|
||||
*
|
||||
* @help ヘルプウィンドウに2ページ目を追加して好きな情報を表示できます。
|
||||
* 指定されたキーで入れ替えます。
|
||||
*
|
||||
* アイテム・スキルのデータベースのメモ欄に以下の通り記述してください。
|
||||
* <AD説明:sampleText> # 文字列「sampleText」が表示されます。
|
||||
* <ADDescription:sampleText> # 同上
|
||||
* <ADスクリプト:sampleScript> #「sampleScript」の評価結果が表示されます。
|
||||
* <ADScript:sampleScript> # 同上
|
||||
*
|
||||
* いずれも制御文字が一通り使用できます。
|
||||
* また、スクリプト中では「item」というローカル変数で対象データを参照できます。
|
||||
* 消費MPや価格などのデータベース情報を動的に表示できます。
|
||||
*
|
||||
* このプラグインにはプラグインコマンドはありません。
|
||||
*
|
||||
* 利用規約:
|
||||
* 作者に無断で改変、再配布が可能で、利用形態(商用、18禁利用等)
|
||||
* についても制限はありません。
|
||||
* このプラグインはもうあなたのものです。
|
||||
*/
|
||||
|
||||
(function() {
|
||||
'use strict';
|
||||
var pluginName = 'AdditionalDescription';
|
||||
var metaTagPrefix = 'AD';
|
||||
|
||||
var createPluginParameter = function(pluginName) {
|
||||
var paramReplacer = function(key, value) {
|
||||
if (value === 'null') {
|
||||
return value;
|
||||
}
|
||||
if (value[0] === '"' && value[value.length - 1] === '"') {
|
||||
return value;
|
||||
}
|
||||
try {
|
||||
return JSON.parse(value);
|
||||
} catch (e) {
|
||||
return value;
|
||||
}
|
||||
};
|
||||
var parameter = JSON.parse(JSON.stringify(PluginManager.parameters(pluginName), paramReplacer));
|
||||
PluginManager.setParameters(pluginName, parameter);
|
||||
return parameter;
|
||||
};
|
||||
|
||||
var param = createPluginParameter(pluginName);
|
||||
|
||||
var getMetaValue = function(object, name) {
|
||||
var metaTagName = metaTagPrefix + (name ? name : '');
|
||||
return object.meta.hasOwnProperty(metaTagName) ? object.meta[metaTagName] : undefined;
|
||||
};
|
||||
|
||||
var getMetaValues = function(object, names) {
|
||||
if (!Array.isArray(names)) return getMetaValue(object, names);
|
||||
for (var i = 0, n = names.length; i < n; i++) {
|
||||
var value = getMetaValue(object, names[i]);
|
||||
if (value !== undefined) return value;
|
||||
}
|
||||
return undefined;
|
||||
};
|
||||
|
||||
//=============================================================================
|
||||
// Window_Selectable
|
||||
// 自分自身への参照をヘルプウィンドウに渡します。
|
||||
//=============================================================================
|
||||
var _Window_Selectable_setHelpWindow = Window_Selectable.prototype.setHelpWindow;
|
||||
Window_Selectable.prototype.setHelpWindow = function(helpWindow) {
|
||||
_Window_Selectable_setHelpWindow.apply(this, arguments);
|
||||
this._helpWindow.setParentWindow(this);
|
||||
};
|
||||
|
||||
//=============================================================================
|
||||
// Window_Help
|
||||
// 追加ヘルプ情報の保持と表示
|
||||
//=============================================================================
|
||||
var _Window_Help_initialize = Window_Help.prototype.initialize;
|
||||
Window_Help.prototype.initialize = function(numLines) {
|
||||
_Window_Help_initialize.apply(this, arguments);
|
||||
this._parentWindows = [];
|
||||
};
|
||||
|
||||
var _Window_Help_setItem = Window_Help.prototype.setItem;
|
||||
Window_Help.prototype.setItem = function(item) {
|
||||
this._anotherText = null;
|
||||
this._item = item;
|
||||
this._itemExist = true;
|
||||
if (item) {
|
||||
this.setAnother();
|
||||
}
|
||||
_Window_Help_setItem.apply(this, arguments);
|
||||
this._originalText = this._text;
|
||||
this._anotherTextVisible = false;
|
||||
this._item = null;
|
||||
this._itemExist = false;
|
||||
if (param.InitialReverse) {
|
||||
this.toggleDesc();
|
||||
}
|
||||
};
|
||||
|
||||
var _Window_Help_setText = Window_Help.prototype.setText;
|
||||
Window_Help.prototype.setText = function(text) {
|
||||
if (this._text === text) {
|
||||
this.refresh();
|
||||
}
|
||||
_Window_Help_setText.apply(this, arguments);
|
||||
};
|
||||
|
||||
Window_Help.prototype.setParentWindow = function(parentWindow) {
|
||||
if (!this._parentWindows.contains(parentWindow)) {
|
||||
this._parentWindows.push(parentWindow);
|
||||
}
|
||||
};
|
||||
|
||||
Window_Help.prototype.setAnother = function() {
|
||||
this.setAnotherDescription();
|
||||
if (this._anotherText === null) {
|
||||
this.setAnotherScript();
|
||||
}
|
||||
};
|
||||
|
||||
Window_Help.prototype.setAnotherScript = function() {
|
||||
var item = this._item;
|
||||
var value = getMetaValues(item, ['スクリプト', 'Script']);
|
||||
if (value) {
|
||||
try {
|
||||
this._anotherText = String(eval(this.convertEscapeCharacters(value)));
|
||||
} catch (e) {
|
||||
console.error(e.stack);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
Window_Help.prototype.setAnotherDescription = function() {
|
||||
var item = this._item;
|
||||
var value = getMetaValues(item, ['説明', 'Description']);
|
||||
if (value) {
|
||||
this._anotherText = this.convertEscapeCharacters(value);
|
||||
}
|
||||
};
|
||||
|
||||
var _Window_Help_refresh = Window_Help.prototype.refresh;
|
||||
Window_Help.prototype.refresh = function() {
|
||||
_Window_Help_refresh.apply(this, arguments);
|
||||
this.refreshChangePage();
|
||||
};
|
||||
|
||||
Window_Help.prototype.refreshChangePage = function() {
|
||||
if (param.ChangePage && this._anotherText && this._itemExist) {
|
||||
var width = this.drawTextEx(param.ChangePage, 0, this.contents.height);
|
||||
var x = this.contentsWidth() - width;
|
||||
var y = this.contentsHeight() - this.lineHeight();
|
||||
this.drawTextEx(param.ChangePage, x, y);
|
||||
} else {
|
||||
this._anotherText = null;
|
||||
this._originalText = null;
|
||||
}
|
||||
};
|
||||
|
||||
var _Window_Help_update = Window_Help.prototype.update;
|
||||
Window_Help.prototype.update = function() {
|
||||
if (this.hasOwnProperty('update')) {
|
||||
_Window_Help_update.apply(this, arguments);
|
||||
} else {
|
||||
Window_Base.prototype.update.call(this);
|
||||
}
|
||||
if (this.isOpen() && this.visible) {
|
||||
this.updateAnotherDesc();
|
||||
}
|
||||
};
|
||||
|
||||
Window_Help.prototype.updateAnotherDesc = function() {
|
||||
if (this._anotherText && this.isAnotherTriggered() && this.isAnyParentActive()) {
|
||||
SoundManager.playCursor();
|
||||
this.toggleDesc();
|
||||
}
|
||||
};
|
||||
|
||||
Window_Help.prototype.toggleDesc = function() {
|
||||
this._anotherTextVisible = !this._anotherTextVisible;
|
||||
this._itemExist = true;
|
||||
this.setText(this._anotherTextVisible ? this._anotherText : this._originalText);
|
||||
this._itemExist = false;
|
||||
};
|
||||
|
||||
Window_Help.prototype.isAnotherTriggered = function() {
|
||||
return Input.isTriggered(param.ButtonName) ||
|
||||
(this.isTouchedInsideFrame() && TouchInput.isTriggered() && param.ValidTouch);
|
||||
};
|
||||
|
||||
Window_Help.prototype.isAnyParentActive = function() {
|
||||
return this._parentWindows.some(function(win) {
|
||||
return win.active;
|
||||
});
|
||||
};
|
||||
|
||||
Window_Help.prototype.isTouchedInsideFrame = Window_Selectable.prototype.isTouchedInsideFrame;
|
||||
})();
|
||||
|
||||
355
www/js/plugins/AdjustPictureGraphical.js
Normal file
355
www/js/plugins/AdjustPictureGraphical.js
Normal file
|
|
@ -0,0 +1,355 @@
|
|||
//=============================================================================
|
||||
// AdjustPictureGraphical.js
|
||||
// ----------------------------------------------------------------------------
|
||||
// Copyright (c) 2015 Triacontane
|
||||
// This plugin is released under the MIT License.
|
||||
// http://opensource.org/licenses/mit-license.php
|
||||
// ----------------------------------------------------------------------------
|
||||
// Version
|
||||
// 1.1.1 2016/01/24 ピクチャが回転しているときも位置を把握できるよう修正
|
||||
// 1.1.0 2015/12/26 グリッドの表示機能とグリッドにスナップ機能を追加
|
||||
// Ctrl+Cで座標をコピーできる機能を追加
|
||||
// 任意のマップを読み込んでテストする機能を追加
|
||||
// 1.0.3 2015/12/20 ピクチャのボタン化プラグインとの競合を解消
|
||||
// 1.0.2 2015/11/23 競合防止のため、タッチ関連の処理をSprite_Pictureに定義
|
||||
// 1.0.1 2015/11/21 ピクチャ番号を出力するよう機能修正
|
||||
// コンソールにログを出す機能を追加
|
||||
// 1.0.0 2015/11/20 初版
|
||||
// ----------------------------------------------------------------------------
|
||||
// [Blog] : http://triacontane.blogspot.jp/
|
||||
// [Twitter]: https://twitter.com/triacontane/
|
||||
// [GitHub] : https://github.com/triacontane/
|
||||
//=============================================================================
|
||||
|
||||
/*:
|
||||
* @plugindesc Plugin that adjust picture to graphical
|
||||
* @author triacontane
|
||||
*
|
||||
* @param GridSize
|
||||
* @desc View grid line
|
||||
* @default 48
|
||||
*
|
||||
* @param TestMapId
|
||||
* @desc Event test map id
|
||||
* @default -1
|
||||
*
|
||||
* @help Plugin that adjust picture to graphical.
|
||||
* Drag and drop on test screen.
|
||||
* this is support plugin. No impact for game.
|
||||
* Start for Event Test(Ctrl+R)
|
||||
*
|
||||
* Caution!
|
||||
* When you set status 'on' this plugin at Plugin Manager,
|
||||
* you have to save project(Ctrl+S) before test
|
||||
*
|
||||
* This plugin is released under the MIT License.
|
||||
*/
|
||||
/*:ja
|
||||
* @plugindesc ピクチャのグラフィカルな位置調整プラグイン。
|
||||
* パラメータを変更したら「プロジェクトの保存」(Ctrl+S)
|
||||
* @author トリアコンタン
|
||||
*
|
||||
* @param グリッドサイズ
|
||||
* @desc ピクチャ調整中に指定サイズでグリッドを表示します。0を指定すると非表示になります。
|
||||
* @default 48
|
||||
*
|
||||
* @param テストマップID
|
||||
* @desc 任意のマップをイベントテストの舞台に設定できます。
|
||||
* @default -1
|
||||
*
|
||||
* @help イベントコマンドのテスト時に、ピクチャの表示位置を
|
||||
* ドラッグ&ドロップで微調整できます。
|
||||
* 左上のタイトルバーに選択したピクチャの座標が表示されるので
|
||||
* テスト画面を表示させつつ、ピクチャの座標を調整してください。
|
||||
* なお、イベントコマンドのテスト以外では機能しません。
|
||||
* イベントコマンドのテストは、イベントエディタからイベントコマンドを
|
||||
* 選択して右クリック→テスト(Ctrl+R)で実行できます。
|
||||
*
|
||||
* 注意!
|
||||
* プラグインマネージャーから当プラグインを有効にしたら、
|
||||
* テストを行う前に「プロジェクトの保存」(Ctrl+S)を行ってください。
|
||||
*
|
||||
* このプラグインにはプラグインコマンドはありません。
|
||||
*
|
||||
* 利用規約:
|
||||
* 作者に無断で改変、再配布が可能で、利用形態(商用、18禁利用等)
|
||||
* についても制限はありません。
|
||||
* このプラグインはもうあなたのものです。
|
||||
*/
|
||||
(function () {
|
||||
'use strict';
|
||||
// イベントテスト時以外は一切の機能を無効
|
||||
if (!DataManager.isEventTest())return;
|
||||
|
||||
var pluginName = 'AdjustPictureGraphical';
|
||||
|
||||
//=============================================================================
|
||||
// ローカル関数
|
||||
// プラグインパラメータやプラグインコマンドパラメータの整形やチェックをします
|
||||
//=============================================================================
|
||||
var getParamNumber = function(paramNames, min, max) {
|
||||
var value = getParamOther(paramNames);
|
||||
if (arguments.length < 2) min = -Infinity;
|
||||
if (arguments.length < 3) max = Infinity;
|
||||
return (parseInt(value, 10) || 0).clamp(min, max);
|
||||
};
|
||||
|
||||
var getParamOther = function(paramNames) {
|
||||
if (!Array.isArray(paramNames)) paramNames = [paramNames];
|
||||
for (var i = 0; i < paramNames.length; i++) {
|
||||
var name = PluginManager.parameters(pluginName)[paramNames[i]];
|
||||
if (name) return name;
|
||||
}
|
||||
return null;
|
||||
};
|
||||
|
||||
//=============================================================================
|
||||
// Input
|
||||
// [c]を追加定義します。
|
||||
//=============================================================================
|
||||
Input.keyMapper[67] = 'copy';
|
||||
|
||||
//=============================================================================
|
||||
// DataManager
|
||||
// テスト用マップの読み込みを追加定義します。
|
||||
//=============================================================================
|
||||
var _DataManager_setupEventTest = DataManager.setupEventTest;
|
||||
DataManager.setupEventTest = function() {
|
||||
_DataManager_setupEventTest.call(this);
|
||||
var mapId = getParamNumber(['TestMapId', 'テストマップID'], -1, 9999);
|
||||
if (mapId > 0) $gamePlayer.reserveTransfer(mapId, 8, 6);
|
||||
};
|
||||
|
||||
//=============================================================================
|
||||
// Game_Picture
|
||||
// ピクチャを掴んだ場合に移動を中断します。
|
||||
//=============================================================================
|
||||
Game_Picture.prototype.resetMove = function(x, y) {
|
||||
this._x = x;
|
||||
this._y = y;
|
||||
this._duration = 0;
|
||||
};
|
||||
|
||||
//=============================================================================
|
||||
// Game_Screen
|
||||
// 最後に選択したピクチャの座標を保存します。
|
||||
//=============================================================================
|
||||
var _Game_Screen_initialize = Game_Screen.prototype.initialize;
|
||||
Game_Screen.prototype.initialize = function() {
|
||||
_Game_Screen_initialize.call(this);
|
||||
this._lastPictureX = null;
|
||||
this._lastPictureY = null;
|
||||
this._copyCount = 0;
|
||||
this._infoPicture = '';
|
||||
this._infoHelp = 'Shift:ウィンドウ表示切替 Ctrl+マウス:グリッドにスナップ Ctrl+C:座標コピー ';
|
||||
this._infoCopy = '';
|
||||
this._documentTitle = '';
|
||||
};
|
||||
|
||||
var _Game_Screen_updatePictures = Game_Screen.prototype.updatePictures;
|
||||
Game_Screen.prototype.updatePictures = function() {
|
||||
_Game_Screen_updatePictures.call(this);
|
||||
if (Utils.isNwjs() && Input.isPressed('control') && Input.isTriggered('copy')) {
|
||||
if (this._lastPictureX == null || this._lastPictureY == null) return;
|
||||
var clipboard = require('nw.gui').Clipboard.get();
|
||||
var copyValue = '';
|
||||
if (this._copyCount % 2 === 0) {
|
||||
copyValue = this._lastPictureX.toString();
|
||||
this._infoCopy = ' X座標[' + copyValue + ']をコピーしました。';
|
||||
} else {
|
||||
copyValue = this._lastPictureY.toString();
|
||||
this._infoCopy = ' Y座標[' + copyValue + ']をコピーしました。';
|
||||
}
|
||||
clipboard.set(copyValue, 'text');
|
||||
this._copyCount++;
|
||||
}
|
||||
var docTitle = this._infoHelp + this._infoPicture + this._infoCopy;
|
||||
if (docTitle !== this._documentTitle) {
|
||||
document.title = docTitle;
|
||||
this._documentTitle = docTitle;
|
||||
}
|
||||
};
|
||||
|
||||
//=============================================================================
|
||||
// Scene_Map
|
||||
// テストイベント時の特別な処理
|
||||
//=============================================================================
|
||||
var _Scene_Map_update = Scene_Map.prototype.update;
|
||||
Scene_Map.prototype.update = function() {
|
||||
if (!$gameMap.isEventRunning()) this.updateEventTest();
|
||||
_Scene_Map_update.call(this);
|
||||
};
|
||||
|
||||
Scene_Map.prototype.updateEventTest = function() {
|
||||
this._spriteset.checkDragPictures();
|
||||
if (Input.isTriggered('shift')) {
|
||||
if (!this._messageWindow.isOpen()) {
|
||||
this._messageWindow.open();
|
||||
} else {
|
||||
this._messageWindow.close();
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
Scene_Map.prototype.isMapTouchOk = function() {
|
||||
return false;
|
||||
};
|
||||
|
||||
//=============================================================================
|
||||
// Spriteset_Base
|
||||
// 配下のピクチャから掴んでいるものを探します。
|
||||
//=============================================================================
|
||||
Spriteset_Base.prototype.checkDragPictures = function() {
|
||||
this._pictureContainer.children.reverse().some(function(picture) {
|
||||
return picture.checkDrag();
|
||||
}, this);
|
||||
this._pictureContainer.children.reverse();
|
||||
};
|
||||
|
||||
var _Spriteset_Base_createLowerLayer = Spriteset_Base.prototype.createLowerLayer;
|
||||
Spriteset_Base.prototype.createLowerLayer = function() {
|
||||
_Spriteset_Base_createLowerLayer.call(this);
|
||||
this.createGridSprite();
|
||||
};
|
||||
|
||||
Spriteset_Base.prototype.createGridSprite = function() {
|
||||
var size = getParamNumber(['GridSize', 'グリッドサイズ'], 0, Math.max(this.width, this.height));
|
||||
if (size === 0) return;
|
||||
this._gridSprite = new Sprite();
|
||||
this._gridSprite.setFrame(0, 0, this.width, this.height);
|
||||
var bitmap = new Bitmap(this.width, this.height);
|
||||
for (var x = 0; x < this.width; x += size) {
|
||||
bitmap.fillRect(x, 0, 1, this.height, 'rgba(255,255,255,1.0)');
|
||||
}
|
||||
for (var y = 0; y < this.height; y += size) {
|
||||
bitmap.fillRect(0, y, this.width, 1, 'rgba(255,255,255,1.0)');
|
||||
}
|
||||
this._gridSprite.bitmap = bitmap;
|
||||
this.addChild(this._gridSprite);
|
||||
};
|
||||
|
||||
//=============================================================================
|
||||
// Sprite_Picture
|
||||
// テストイベント時にピクチャを掴みます。
|
||||
//=============================================================================
|
||||
var _Sprite_Picture_initialize = Sprite_Picture.prototype.initialize;
|
||||
Sprite_Picture.prototype.initialize = function(pictureId) {
|
||||
_Sprite_Picture_initialize.call(this, pictureId);
|
||||
this._holding = false;
|
||||
this._dx = 0;
|
||||
this._dy = 0;
|
||||
};
|
||||
|
||||
Sprite_Picture.prototype.checkDrag = function() {
|
||||
var picture = this.picture();
|
||||
if (picture != null) {
|
||||
if (this.updateDragMove()) {
|
||||
var result = 'PictureNum:[' + this._pictureId + '] X:[' + this.x + '] Y:[' + this.y + ']';
|
||||
$gameScreen._lastPictureX = this.x;
|
||||
$gameScreen._lastPictureY = this.y;
|
||||
$gameScreen._infoPicture = result;
|
||||
$gameScreen._infoCopy = '';
|
||||
if (!this._holding) console.log(result);
|
||||
picture.resetMove(this.x, this.y);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
};
|
||||
|
||||
Sprite_Picture.prototype.updateDragMove = function() {
|
||||
if (this.isTriggered() || (this._holding && TouchInput.isPressed())) {
|
||||
if (!this._holding) this.hold();
|
||||
var x = TouchInput.x - this._dx;
|
||||
var y = TouchInput.y - this._dy;
|
||||
if (Input.isPressed('control')) {
|
||||
var size = getParamNumber(['GridSize', 'グリッドサイズ'], 0, Math.max(this.width, this.height));
|
||||
if (size !== 0) {
|
||||
x % size > size / 2 ? x += size - x % size : x -= x % size;
|
||||
y % size > size / 2 ? y += size - y % size : y -= y % size;
|
||||
}
|
||||
}
|
||||
this.move(x, y);
|
||||
return true;
|
||||
} else if (this._holding) {
|
||||
this.release();
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
};
|
||||
|
||||
Sprite_Picture.prototype.hold = function() {
|
||||
this._holding = true;
|
||||
this._dx = TouchInput.x - this.x;
|
||||
this._dy = TouchInput.y - this.y;
|
||||
this.setBlendColor([255,255,255,192]);
|
||||
};
|
||||
|
||||
Sprite_Picture.prototype.release = function() {
|
||||
this._holding = false;
|
||||
this.setBlendColor([0,0,0,0]);
|
||||
};
|
||||
|
||||
//=============================================================================
|
||||
// Sprite_Picture
|
||||
// タッチ操作を可能にする共通部分
|
||||
//=============================================================================
|
||||
Sprite_Picture.prototype.screenWidth = function() {
|
||||
return (this.width || 0) * this.scale.x;
|
||||
};
|
||||
|
||||
Sprite_Picture.prototype.screenHeight = function() {
|
||||
return (this.height || 0) * this.scale.y;
|
||||
};
|
||||
|
||||
Sprite_Picture.prototype.screenX = function() {
|
||||
return (this.x || 0) - this.anchor.x * this.screenWidth();
|
||||
};
|
||||
|
||||
Sprite_Picture.prototype.screenY = function() {
|
||||
return (this.y || 0) - this.anchor.y * this.screenHeight();
|
||||
};
|
||||
|
||||
Sprite_Picture.prototype.minX = function() {
|
||||
var width = this.screenWidth();
|
||||
return Math.min(this.screenX(), this.screenX() + width);
|
||||
};
|
||||
|
||||
Sprite_Picture.prototype.minY = function() {
|
||||
var height = this.screenHeight();
|
||||
return Math.min(this.screenY(), this.screenY() + height);
|
||||
};
|
||||
|
||||
Sprite_Picture.prototype.maxX = function() {
|
||||
var width = this.screenWidth();
|
||||
return Math.max(this.screenX(), this.screenX() + width);
|
||||
};
|
||||
|
||||
Sprite_Picture.prototype.maxY = function() {
|
||||
var height = this.screenHeight();
|
||||
return Math.max(this.screenY(), this.screenY() + height);
|
||||
};
|
||||
|
||||
Sprite_Picture.prototype.isTouchPosInRect = function () {
|
||||
var dx = TouchInput.x - this.x;
|
||||
var dy = TouchInput.y - this.y;
|
||||
var sin = Math.sin(-this.rotation);
|
||||
var cos = Math.cos(-this.rotation);
|
||||
var rx = this.x + Math.floor(dx * cos + dy * -sin);
|
||||
var ry = this.y + Math.floor(dx * sin + dy * cos);
|
||||
return (rx >= this.minX() && rx <= this.maxX() &&
|
||||
ry >= this.minY() && ry <= this.maxY());
|
||||
};
|
||||
|
||||
Sprite_Picture.prototype.isTouchable = function() {
|
||||
return this.bitmap != null && this.visible && this.scale.x !== 0 && this.scale.y !== 0;
|
||||
};
|
||||
|
||||
Sprite_Picture.prototype.isTriggered = function() {
|
||||
return this.isTouchEvent(TouchInput.isTriggered);
|
||||
};
|
||||
|
||||
Sprite_Picture.prototype.isTouchEvent = function(triggerFunc) {
|
||||
return this.isTouchable() && triggerFunc.call(TouchInput) && this.isTouchPosInRect();
|
||||
};
|
||||
})();
|
||||
450
www/js/plugins/AnotherNewGame.js
Normal file
450
www/js/plugins/AnotherNewGame.js
Normal file
|
|
@ -0,0 +1,450 @@
|
|||
//=============================================================================
|
||||
// AnotherNewGame.js
|
||||
// ----------------------------------------------------------------------------
|
||||
// (C) 2015 Triacontane
|
||||
// This plugin is released under the MIT License.
|
||||
// http://opensource.org/licenses/mit-license.php
|
||||
// ----------------------------------------------------------------------------
|
||||
// Version
|
||||
// 3.0.0 2020/03/08 アナザーニューゲームコマンドを複数登録できるよう修正。以前のバージョンと互換性がありません。
|
||||
// 2.0.0 2019/03/19 アナザーロード時に場所移動せず、セーブ位置から開始できる機能を追加
|
||||
// アナザーニューゲーム時に自動でONになるスイッチを追加
|
||||
// パラメータの型指定機能に対応
|
||||
// 1.4.0 2017/06/18 アナザーニューゲームの追加位置を指定できる機能を追加
|
||||
// 1.3.0 2017/05/27 ニューゲームを非表示にできる機能を追加
|
||||
// 1.2.4 2017/05/23 プラグインコマンドのヘルプを修正
|
||||
// 1.2.3 2017/01/25 同一サーバで同プラグインを適用した複数のゲームを公開する際に、設定が重複するのを避けるために管理番号を追加
|
||||
// 1.2.2 2016/12/10 アナザーニューゲームをロードした際に、ロード元でイベントが実行中だった場合に続きが実行されてしまう現象を修正
|
||||
// 1.2.1 2016/11/23 遠景タイトルプラグイン(ParallaxTitle.js)と連携する設定を追加
|
||||
// 1.2.0 2016/11/22 アナザーニューゲームを選択した際に、フェードアウトしなくなる設定を追加
|
||||
// 1.1.0 2016/03/29 fftfanttさんからご提供いただいたコードを反映させ、アナザーニューゲーム選択時に
|
||||
// 既存のセーブファイルをロードする機能を追加
|
||||
// 1.0.1 2015/11/10 プラグイン適用中にセーブできなくなる不具合を修正
|
||||
// 1.0.0 2015/11/07 初版
|
||||
// ----------------------------------------------------------------------------
|
||||
// [Blog] : https://triacontane.blogspot.jp/
|
||||
// [Twitter]: https://twitter.com/triacontane/
|
||||
// [GitHub] : https://github.com/triacontane/
|
||||
//=============================================================================
|
||||
|
||||
/*:
|
||||
* @plugindesc アナザーニューゲーム追加プラグイン
|
||||
* @author トリアコンタン
|
||||
*
|
||||
* @param anotherDataList
|
||||
* @text アナザーニューゲームリスト
|
||||
* @desc アナザーニューゲームのコマンド一覧です。
|
||||
* @default []
|
||||
* @type struct<COMMAND>[]
|
||||
*
|
||||
* @param manageNumber
|
||||
* @text 管理番号
|
||||
* @desc 同一サーバ内に複数のゲームを配布する場合のみ、ゲームごとに異なる値を設定してください。(RPGアツマールは対象外)
|
||||
* @default
|
||||
*
|
||||
* @help バージョン3.0.0は以前のバージョンと互換性がありません。
|
||||
*
|
||||
* タイトル画面のウィンドウの一番下に、もう一つのニューゲームを追加します。
|
||||
* 選択すると、ニューゲームとは別に指定したマップに遷移します。
|
||||
* クリア後のおまけやCG回想モード、スタッフクレジット、ミニゲーム、隠し要素など
|
||||
* 使い手次第で様々な用途に使えます。
|
||||
*
|
||||
* 選択肢は、あらかじめ非表示あるいは選択禁止にしておくことができます。
|
||||
* これらはプラグインコマンドから解除でき、解除状態はセーブファイルを
|
||||
* 超えてゲーム全体で共有されます。解除した状態を再度、禁止にすることもできます。
|
||||
*
|
||||
* 設定はファイル「AnotherNewGameMk2.rpgsave」に保存されます。
|
||||
*
|
||||
* プラグインコマンド詳細
|
||||
* イベントコマンド「プラグインコマンド」から実行。
|
||||
*
|
||||
* ANG_VISIBLE 1 # [1]番目のアナザーニューゲームを表示にする。
|
||||
* ANG_ENABLE 1 # [1]番目のアナザーニューゲームを選択可能にする。
|
||||
* ANG_HIDDEN 1 # [1]番目のアナザーニューゲームを非表示にする。
|
||||
* ANG_DISABLE 1 # [1]番目のアナザーニューゲームを選択禁止にする。
|
||||
*
|
||||
* 使用例(1番目に登録したアナザーニューゲームを「表示」にする場合)
|
||||
* ANG_VISIBLE 1
|
||||
*
|
||||
* ANG_NEWGAME_HIDDEN # ニューゲームを非表示にする。
|
||||
* ANG_NEWGAME_VISIBLE # ニューゲームを表示にする。
|
||||
*
|
||||
* ニューゲームを非表示にする機能は、ゲームが開始できなくなる場合が
|
||||
* あるので注意して使用してください。
|
||||
*
|
||||
* 利用規約:
|
||||
* 作者に無断で改変、再配布が可能で、利用形態(商用、18禁利用等)
|
||||
* についても制限はありません。
|
||||
* このプラグインはもうあなたのものです。
|
||||
*/
|
||||
|
||||
/*~struct~COMMAND:
|
||||
* @param name
|
||||
* @text コマンド名称
|
||||
* @desc タイトル画面に表示されるコマンド名です。
|
||||
* @default Another New Game
|
||||
*
|
||||
* @param mapId
|
||||
* @text マップID
|
||||
* @desc 移動先のマップIDです。0を指定した場合、場所移動しません。
|
||||
* @default 1
|
||||
* @type number
|
||||
*
|
||||
* @param mapX
|
||||
* @text X座標
|
||||
* @desc 移動先のX座標です。
|
||||
* @default 1
|
||||
* @type number
|
||||
*
|
||||
* @param mapY
|
||||
* @text Y座標
|
||||
* @desc 移動先のY座標です。(自然数)
|
||||
* @default 1
|
||||
* @type number
|
||||
*
|
||||
* @param hidden
|
||||
* @text デフォルト非表示
|
||||
* @desc デフォルトで選択肢を非表示にします。プラグインコマンドで有効化できます。
|
||||
* @default false
|
||||
* @type boolean
|
||||
*
|
||||
* @param disable
|
||||
* @text デフォルト使用禁止
|
||||
* @desc デフォルトで選択肢を選択禁止にします。プラグインコマンドで有効化できます。
|
||||
* @default false
|
||||
* @type boolean
|
||||
*
|
||||
* @param addPosition
|
||||
* @text 追加位置
|
||||
* @desc アナザーニューゲームのコマンド追加位置です。(1:ニューゲームの上、2:コンティニューの上、3:オプションの上)
|
||||
* @default 0
|
||||
* @type select
|
||||
* @option オプションの下
|
||||
* @value 0
|
||||
* @option ニューゲームの上
|
||||
* @value 1
|
||||
* @option コンティニューの上
|
||||
* @value 2
|
||||
* @option オプションの上
|
||||
* @value 3
|
||||
*
|
||||
* @param switchId
|
||||
* @text 連動スイッチ番号
|
||||
* @desc アナザーニューゲーム開始時に自動でONになるスイッチを指定できます。
|
||||
* @default 0
|
||||
* @type switch
|
||||
*
|
||||
* @param fileLoad
|
||||
* @text ファイルロード
|
||||
* @desc アナザーニューゲーム選択時に、ロード画面に遷移して既存セーブデータをロードします。
|
||||
* @default false
|
||||
* @type boolean
|
||||
*
|
||||
* @param noFadeout
|
||||
* @text フェードアウト無効
|
||||
* @desc アナザーニューゲーム選択時に、オーディオや画面がフェードアウトしなくなります。
|
||||
* @default false
|
||||
* @type boolean
|
||||
*/
|
||||
|
||||
(function() {
|
||||
var localExtraStageIndex = -1;
|
||||
|
||||
var createPluginParameter = function(pluginName) {
|
||||
var paramReplacer = function(key, value) {
|
||||
if (value === 'null') {
|
||||
return value;
|
||||
}
|
||||
if (value[0] === '"' && value[value.length - 1] === '"') {
|
||||
return value;
|
||||
}
|
||||
try {
|
||||
return JSON.parse(value);
|
||||
} catch (e) {
|
||||
return value;
|
||||
}
|
||||
};
|
||||
var parameter = JSON.parse(JSON.stringify(PluginManager.parameters(pluginName), paramReplacer));
|
||||
PluginManager.setParameters(pluginName, parameter);
|
||||
return parameter;
|
||||
};
|
||||
var parameters = createPluginParameter('AnotherNewGame');
|
||||
parameters.anotherDataList = parameters.anotherDataList || [];
|
||||
|
||||
/**
|
||||
* Convert escape characters.(require any window object)
|
||||
* @param text Target text
|
||||
* @returns {String} Converted text
|
||||
*/
|
||||
var convertEscapeCharacters = function(text) {
|
||||
var windowLayer = SceneManager._scene._windowLayer;
|
||||
return windowLayer ? windowLayer.children[0].convertEscapeCharacters(text.toString()) : text;
|
||||
};
|
||||
|
||||
var _Game_Interpreter_pluginCommand = Game_Interpreter.prototype.pluginCommand;
|
||||
Game_Interpreter.prototype.pluginCommand = function(command, args) {
|
||||
_Game_Interpreter_pluginCommand.call(this, command, args);
|
||||
var index = args[0] ? parseInt(convertEscapeCharacters(args[0])) - 1 : 0;
|
||||
switch (command.toUpperCase()) {
|
||||
case 'ANG_VISIBLE' :
|
||||
ANGSettingManager.setVisible(index, true);
|
||||
ANGSettingManager.save();
|
||||
break;
|
||||
case 'ANG_ENABLE' :
|
||||
ANGSettingManager.setEnable(index, true);
|
||||
ANGSettingManager.save();
|
||||
break;
|
||||
case 'ANG_HIDDEN' :
|
||||
ANGSettingManager.setVisible(index, false);
|
||||
ANGSettingManager.save();
|
||||
break;
|
||||
case 'ANG_DISABLE' :
|
||||
ANGSettingManager.setEnable(index, false);
|
||||
ANGSettingManager.save();
|
||||
break;
|
||||
case 'ANG_NEWGAME_HIDDEN' :
|
||||
ANGSettingManager.newGameHidden = true;
|
||||
ANGSettingManager.save();
|
||||
break;
|
||||
case 'ANG_NEWGAME_VISIBLE' :
|
||||
ANGSettingManager.newGameHidden = false;
|
||||
ANGSettingManager.save();
|
||||
break;
|
||||
}
|
||||
};
|
||||
|
||||
//=============================================================================
|
||||
// Game_Map
|
||||
// アナザーニューゲームのロード時に実行していたイベントを中断します。
|
||||
//=============================================================================
|
||||
Game_Map.prototype.abortInterpreter = function() {
|
||||
if (this.isEventRunning()) {
|
||||
this._interpreter.command115();
|
||||
}
|
||||
};
|
||||
|
||||
//=============================================================================
|
||||
// Scene_Title
|
||||
// アナザーニューゲームの選択時の処理を追加定義します。
|
||||
//=============================================================================
|
||||
var _Scene_Title_create = Scene_Title.prototype.create;
|
||||
Scene_Title.prototype.create = function() {
|
||||
ANGSettingManager.loadData();
|
||||
_Scene_Title_create.call(this);
|
||||
};
|
||||
|
||||
var _Scene_Title_commandContinue = Scene_Title.prototype.commandContinue;
|
||||
Scene_Title.prototype.commandContinue = function() {
|
||||
_Scene_Title_commandContinue.call(this);
|
||||
localExtraStageIndex = -1;
|
||||
};
|
||||
|
||||
var _Scene_Title_commandNewGameSecond = Scene_Title.prototype.commandNewGameSecond;
|
||||
Scene_Title.prototype.commandNewGameSecond = function(index) {
|
||||
if (_Scene_Title_commandNewGameSecond) {
|
||||
_Scene_Title_commandNewGameSecond.apply(this, arguments);
|
||||
}
|
||||
var command = parameters.anotherDataList[index];
|
||||
if (command.noFadeout) {
|
||||
this._noFadeout = true;
|
||||
}
|
||||
if (!command.fileLoad) {
|
||||
var preMapId = $dataSystem.startMapId;
|
||||
var preStartX = $dataSystem.startX;
|
||||
var preStartY = $dataSystem.startY;
|
||||
var newMapId = command.mapId;
|
||||
if (newMapId > 0) {
|
||||
$dataSystem.startMapId = newMapId;
|
||||
$dataSystem.startX = command.mapX || 1;
|
||||
$dataSystem.startY = command.mapY || 1;
|
||||
}
|
||||
this.commandNewGame();
|
||||
$dataSystem.startMapId = preMapId;
|
||||
$dataSystem.startX = preStartX;
|
||||
$dataSystem.startY = preStartY;
|
||||
var switchId = command.switchId;
|
||||
if (switchId > 0) {
|
||||
$gameSwitches.setValue(switchId, true);
|
||||
}
|
||||
} else {
|
||||
this.commandContinue();
|
||||
localExtraStageIndex = index;
|
||||
}
|
||||
};
|
||||
|
||||
var _Scene_Title_createCommandWindow = Scene_Title.prototype.createCommandWindow;
|
||||
Scene_Title.prototype.createCommandWindow = function() {
|
||||
_Scene_Title_createCommandWindow.call(this);
|
||||
parameters.anotherDataList.forEach(function(command, index) {
|
||||
if (ANGSettingManager.isVisible(index)) {
|
||||
this._commandWindow.setHandler('nameGame2_' + index, this.commandNewGameSecond.bind(this, index));
|
||||
}
|
||||
}, this);
|
||||
};
|
||||
|
||||
Scene_Title.prototype.fadeOutAll = function() {
|
||||
if (!this._noFadeout) {
|
||||
Scene_Base.prototype.fadeOutAll.apply(this, arguments);
|
||||
}
|
||||
};
|
||||
|
||||
//=============================================================================
|
||||
// Scene_Load
|
||||
// ロード成功時にアナザーポイントに移動します。
|
||||
//=============================================================================
|
||||
var _Scene_Load_onLoadSuccess = Scene_Load.prototype.onLoadSuccess;
|
||||
Scene_Load.prototype.onLoadSuccess = function() {
|
||||
_Scene_Load_onLoadSuccess.call(this);
|
||||
if (localExtraStageIndex >= 0) {
|
||||
var command = parameters.anotherDataList[localExtraStageIndex];
|
||||
var mapId = command.mapId;
|
||||
if (mapId > 0) {
|
||||
var x = command.mapX || 1;
|
||||
var y = command.mapY || 1;
|
||||
$gamePlayer.reserveTransfer(mapId, x, y);
|
||||
}
|
||||
$gameMap.abortInterpreter();
|
||||
DataManager.selectSavefileForNewGame();
|
||||
var switchId = command.switchId;
|
||||
if (switchId > 0) {
|
||||
$gameSwitches.setValue(switchId, true);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
//=============================================================================
|
||||
// Window_TitleCommand
|
||||
// アナザーニューゲームのこ選択肢を追加定義しますが。
|
||||
//=============================================================================
|
||||
var _Window_TitleCommand_makeCommandList = Window_TitleCommand.prototype.makeCommandList;
|
||||
Window_TitleCommand.prototype.makeCommandList = function() {
|
||||
_Window_TitleCommand_makeCommandList.call(this);
|
||||
parameters.anotherDataList.forEach(function(command, index) {
|
||||
if (ANGSettingManager.isVisible(index)) {
|
||||
this.makeAnotherNewGameCommand(command, index);
|
||||
}
|
||||
}, this);
|
||||
if (ANGSettingManager.newGameHidden) {
|
||||
this.eraseCommandNewGame();
|
||||
}
|
||||
};
|
||||
|
||||
Window_TitleCommand.prototype.makeAnotherNewGameCommand = function(command, index) {
|
||||
this.addCommand(command.name, 'nameGame2_' + index, ANGSettingManager.isEnable(index));
|
||||
var addPosition = command.addPosition;
|
||||
if (addPosition > 0) {
|
||||
var anotherCommand = this._list.pop();
|
||||
this._list.splice(addPosition - 1, 0, anotherCommand);
|
||||
}
|
||||
};
|
||||
|
||||
Window_TitleCommand.prototype.eraseCommandNewGame = function() {
|
||||
this._list = this._list.filter(function(command) {
|
||||
return command.symbol !== 'newGame';
|
||||
});
|
||||
};
|
||||
|
||||
var _Window_TitleCommand_updatePlacement = Window_TitleCommand.prototype.updatePlacement;
|
||||
Window_TitleCommand.prototype.updatePlacement = function() {
|
||||
_Window_TitleCommand_updatePlacement.call(this);
|
||||
var addSize = this._list.length - 3;
|
||||
if (addSize > 0) {
|
||||
this.y += addSize * this.itemHeight() / 2;
|
||||
}
|
||||
};
|
||||
|
||||
//=============================================================================
|
||||
// ANGManager
|
||||
// アナザーニューゲームの設定ファイルのセーブとロードを定義します。
|
||||
//=============================================================================
|
||||
function ANGSettingManager() {
|
||||
throw new Error('This is a static class');
|
||||
}
|
||||
|
||||
ANGSettingManager._fileId = -1001;
|
||||
|
||||
ANGSettingManager._visible = [];
|
||||
ANGSettingManager._enable = [];
|
||||
ANGSettingManager.newGameHidden = false;
|
||||
|
||||
ANGSettingManager.make = function() {
|
||||
var info = {};
|
||||
info.visible = this._visible;
|
||||
info.enable = this._enable;
|
||||
info.newGameHidden = this.newGameHidden;
|
||||
return info;
|
||||
};
|
||||
|
||||
ANGSettingManager.isVisible = function(index) {
|
||||
if (this._visible[index] !== undefined) {
|
||||
return this._visible[index];
|
||||
} else {
|
||||
return !parameters.anotherDataList[index].hidden;
|
||||
}
|
||||
};
|
||||
|
||||
ANGSettingManager.setVisible = function(index, value) {
|
||||
this._visible[index] = value;
|
||||
};
|
||||
|
||||
ANGSettingManager.isEnable = function(index) {
|
||||
if (this._enable[index] !== undefined) {
|
||||
return this._enable[index];
|
||||
} else {
|
||||
return !parameters.anotherDataList[index].disable;
|
||||
}
|
||||
};
|
||||
|
||||
ANGSettingManager.setEnable = function(index, value) {
|
||||
this._enable[index] = value;
|
||||
};
|
||||
|
||||
ANGSettingManager.loadData = function() {
|
||||
var info = this.load();
|
||||
this._visible = info.visible || [];
|
||||
this._enable = info.enable || [];
|
||||
this.newGameHidden = !!info.newGameHidden;
|
||||
};
|
||||
|
||||
ANGSettingManager.load = function() {
|
||||
var json;
|
||||
try {
|
||||
json = StorageManager.load(this._fileId);
|
||||
} catch (e) {
|
||||
console.error(e);
|
||||
return [];
|
||||
}
|
||||
if (json) {
|
||||
return JSON.parse(json);
|
||||
} else {
|
||||
return [];
|
||||
}
|
||||
};
|
||||
|
||||
ANGSettingManager.save = function() {
|
||||
var info = ANGSettingManager.make();
|
||||
StorageManager.save(this._fileId, JSON.stringify(info));
|
||||
};
|
||||
|
||||
//=============================================================================
|
||||
// StorageManager
|
||||
// アナザーニューゲームの設定ファイルのパス取得処理を追加定義します。
|
||||
//=============================================================================
|
||||
var _StorageManager_localFilePath = StorageManager.localFilePath;
|
||||
StorageManager.localFilePath = function(savefileId) {
|
||||
if (savefileId === ANGSettingManager._fileId) {
|
||||
return this.localFileDirectoryPath() + 'AnotherNewGameMk2.rpgsave';
|
||||
} else {
|
||||
return _StorageManager_localFilePath.call(this, savefileId);
|
||||
}
|
||||
};
|
||||
|
||||
var _StorageManager_webStorageKey = StorageManager.webStorageKey;
|
||||
StorageManager.webStorageKey = function(savefileId) {
|
||||
if (savefileId === ANGSettingManager._fileId) {
|
||||
return 'RPG AnotherNewGame Mk2' + parameters.manageNumber;
|
||||
} else {
|
||||
return _StorageManager_webStorageKey.call(this, savefileId);
|
||||
}
|
||||
};
|
||||
})();
|
||||
637
www/js/plugins/AudioStreaming.js
Normal file
637
www/js/plugins/AudioStreaming.js
Normal file
|
|
@ -0,0 +1,637 @@
|
|||
//=============================================================================
|
||||
// AudioStreaming.js
|
||||
// MIT License (C) 2019 くらむぼん
|
||||
// http://opensource.org/licenses/mit-license.php
|
||||
// ----------------------------------------------------------------------------
|
||||
// 2019/06/02 ループタグの指定範囲が全長を超えた場合のループ処理を修正
|
||||
// 2019/06/02 デコード結果がない場合にエラーになるのを修正
|
||||
// 2019/06/15 Windows7のFirefoxでストリーミングが無効なバグの場合、フォールバック
|
||||
// 2019/06/16 暗号化音声ファイル対応
|
||||
// 2019/06/22 Safariでサンプルレート8000~22050に対応
|
||||
// 2019/06/27 Safariで一部音声が二重に流れることがある不具合を修正
|
||||
// 2019/06/29 Cordovaで動作するように修正
|
||||
// 2019/10/20 ループタグがない場合に二周目以降の先頭が途切れることがある不具合を修正
|
||||
//=============================================================================
|
||||
|
||||
/*:
|
||||
* @plugindesc Load audio faster and use only ogg files.
|
||||
* @author krmbn0576
|
||||
*
|
||||
* @param mode
|
||||
* @type select
|
||||
* @option Enable
|
||||
* @value 10
|
||||
* @option Enable, and measure performance
|
||||
* @value 11
|
||||
* @option Disable
|
||||
* @value 00
|
||||
* @option Disable, and measure performance
|
||||
* @value 01
|
||||
* @desc Sets whether audio streaming is enabled, and whether measure performance.
|
||||
* @default 10
|
||||
*
|
||||
* @param deleteM4a
|
||||
* @type boolean
|
||||
* @text Delete all m4a files
|
||||
* @desc Delete all m4a files the next time you playtest. Backup your files before execute.
|
||||
* @default false
|
||||
*
|
||||
* @help
|
||||
* Load audio faster by audio streaming whether on browsers or on standalones.
|
||||
* Use only ogg files to play the audio such as BGM and SE.
|
||||
* You need no longer to prepare m4a files.
|
||||
*
|
||||
* Usage:
|
||||
* Locate stbvorbis_stream.js, stbvorbis_stream_asm.js, and this plugin in plugins directory.
|
||||
* Turn ON Only this plugin, but DO NOT register the others to plugin manager.
|
||||
*
|
||||
*
|
||||
* License:
|
||||
* MIT License
|
||||
*
|
||||
* Library:
|
||||
* ogg decoder - stbvorbis.js (C) Hajime Hoshi, krmbn0576
|
||||
* https://github.com/hajimehoshi/stbvorbis.js
|
||||
*/
|
||||
|
||||
/*:ja
|
||||
* @plugindesc 音声読み込みを高速化し、oggファイルのみを使用します。
|
||||
* @author くらむぼん
|
||||
*
|
||||
* @param mode
|
||||
* @type select
|
||||
* @option 有効
|
||||
* @value 10
|
||||
* @option 有効(読み込み速度を計測する)
|
||||
* @value 11
|
||||
* @option 無効
|
||||
* @value 00
|
||||
* @option 無効(読み込み速度を計測する)
|
||||
* @value 01
|
||||
* @text モード
|
||||
* @desc このプラグインを有効にするかどうか、読み込み速度を計測するかどうかを設定します。
|
||||
* @default 10
|
||||
*
|
||||
* @param deleteM4a
|
||||
* @type boolean
|
||||
* @text m4aファイルを消去
|
||||
* @desc 次にテストプレイを開始した時、すべてのm4aファイルを削除します。念の為バックアップを取った上でご活用ください。
|
||||
* @default false
|
||||
*
|
||||
* @help
|
||||
* 音声ストリーミングにより、音声読み込みを高速化します。
|
||||
* BGMや効果音などの音声ファイルにoggファイルのみを使用します。
|
||||
* 本プラグインを入れている場合、m4aファイルを用意しなくても音声を再生できます。
|
||||
*
|
||||
* 使い方:
|
||||
* pluginsフォルダに本プラグインとstbvorbis_stream.jsとstbvorbis_stream_asm.jsを配置してください。
|
||||
* 3つのうち本プラグイン「だけ」をプラグイン管理でONに設定してください。
|
||||
* 他の2つはOFFでも構いませんし、プラグイン管理に登録しなくても構いません。
|
||||
*
|
||||
*
|
||||
* ライセンス:
|
||||
* このプラグインを利用する時は、作者名をプラグインから削除しないでください。
|
||||
* それ以外の制限はありません。お好きなようにどうぞ。
|
||||
*
|
||||
* 使用ライブラリ:
|
||||
* oggデコーダー - stbvorbis.js (C) Hajime Hoshi, くらむぼん
|
||||
* https://github.com/hajimehoshi/stbvorbis.js
|
||||
*/
|
||||
|
||||
if (function() {
|
||||
'use strict';
|
||||
const parameters = PluginManager.parameters('AudioStreaming');
|
||||
const enabled = parameters['mode'][0] === '1';
|
||||
const measured = parameters['mode'][1] === '1';
|
||||
const deleteM4a = parameters['deleteM4a'] === 'true';
|
||||
|
||||
const isTest =
|
||||
location.search
|
||||
.slice(1)
|
||||
.split('&')
|
||||
.contains('test') ||
|
||||
(typeof window.nw !== 'undefined' &&
|
||||
nw.App.argv.length > 0 &&
|
||||
nw.App.argv[0].split('&').contains('test'));
|
||||
|
||||
if (deleteM4a && isTest && Utils.isNwjs()) {
|
||||
const exec = require('child_process').exec;
|
||||
let messages, success, failure;
|
||||
if (navigator.language.contains('ja')) {
|
||||
messages = [
|
||||
'すべてのm4aファイルを削除しますか?',
|
||||
'本当に削除しますか?念のため、先にプロジェクトフォルダのバックアップをとっておくことをおすすめします。',
|
||||
'こうかいしませんね?'
|
||||
];
|
||||
success = 'すべてのm4aファイルを削除しました。';
|
||||
failure = 'm4aファイルの削除中にエラーが発生しました。 ';
|
||||
} else {
|
||||
messages = [
|
||||
'Delete all m4a files?',
|
||||
'Are you sure?',
|
||||
'This cannot be undone. Are you really, REALLY sure?'
|
||||
];
|
||||
success = 'All m4a files have been deleted.';
|
||||
failure = 'Error occured while deleting m4a files.';
|
||||
}
|
||||
if (messages.every(message => confirm(message))) {
|
||||
const command =
|
||||
process.platform === 'win32'
|
||||
? 'del /s *.m4a'
|
||||
: 'find . -name "*.m4a" -delete';
|
||||
exec(command, error => alert(error ? failure : success));
|
||||
}
|
||||
}
|
||||
|
||||
if (measured) {
|
||||
const div = document.createElement('div');
|
||||
div.style.backgroundColor = 'AliceBlue';
|
||||
div.style.position = 'fixed';
|
||||
div.style.left = 0;
|
||||
div.style.bottom = 0;
|
||||
document.body.appendChild(div);
|
||||
|
||||
const updateInfo = info => {
|
||||
const decodeEndTime = Date.now();
|
||||
const content = `
|
||||
name: ${info.url.split('/').pop()}<br>
|
||||
mode: ${enabled ? 'streaming' : 'legacy'}<br>
|
||||
load time: ${info.loadEndTime - info.loadStartTime}ms<br>
|
||||
decode time: ${decodeEndTime - info.loadEndTime}ms<br>`;
|
||||
|
||||
if (div.innerHTML !== content) div.innerHTML = content;
|
||||
div.style.zIndex = 11;
|
||||
};
|
||||
|
||||
const _SceneManager_updateManagers = SceneManager.updateManagers;
|
||||
SceneManager.updateManagers = function() {
|
||||
const _WebAudio__load = WebAudio.prototype._load;
|
||||
WebAudio.prototype._load = function(url) {
|
||||
_WebAudio__load.apply(this, arguments);
|
||||
this._info = { url, loadStartTime: Date.now() };
|
||||
this.addLoadListener(() => updateInfo(this._info));
|
||||
};
|
||||
|
||||
const _WebAudio__readLoopComments =
|
||||
WebAudio.prototype._readLoopComments;
|
||||
WebAudio.prototype._readLoopComments = function() {
|
||||
this._info.loadEndTime = this._info.loadEndTime || Date.now();
|
||||
_WebAudio__readLoopComments.apply(this, arguments);
|
||||
};
|
||||
|
||||
SceneManager.updateManagers = _SceneManager_updateManagers;
|
||||
SceneManager.updateManagers.apply(this, arguments);
|
||||
};
|
||||
}
|
||||
|
||||
return enabled;
|
||||
}()) {
|
||||
|
||||
PluginManager.loadScript('stbvorbis_stream.js');
|
||||
|
||||
AudioManager.audioFileExt = function() {
|
||||
return '.ogg';
|
||||
};
|
||||
|
||||
fetch('').catch(_ => window.cordova = window.cordova || true);
|
||||
|
||||
if (window.ResourceHandler) {
|
||||
ResourceHandler.fetchWithRetry = async function(
|
||||
method,
|
||||
url,
|
||||
_retryCount = 0
|
||||
) {
|
||||
let retry;
|
||||
try {
|
||||
const response = await (!window.cordova ?
|
||||
fetch(url, { credentials: 'same-origin' }) :
|
||||
new Promise((resolve, reject) => {
|
||||
const xhr = new XMLHttpRequest();
|
||||
xhr.responseType = 'blob';
|
||||
xhr.onload = () => resolve(new Response(xhr.response, { status: xhr.status }));
|
||||
xhr.onerror = reject;
|
||||
xhr.open('GET', url);
|
||||
xhr.send();
|
||||
})
|
||||
);
|
||||
if (response.ok) {
|
||||
switch (method) {
|
||||
case 'stream':
|
||||
if (response.body) {
|
||||
return response.body.getReader();
|
||||
}
|
||||
const value = new Uint8Array(await response.arrayBuffer());
|
||||
return {
|
||||
_done: false,
|
||||
read() {
|
||||
if (!this._done) {
|
||||
this._done = true;
|
||||
return Promise.resolve({ done: false, value });
|
||||
} else {
|
||||
return Promise.resolve({ done: true });
|
||||
}
|
||||
}
|
||||
};
|
||||
case 'arrayBuffer':
|
||||
case 'blob':
|
||||
case 'formData':
|
||||
case 'json':
|
||||
case 'text':
|
||||
return await response[method]();
|
||||
default:
|
||||
return Promise.reject(new Error('method not allowed'));
|
||||
}
|
||||
} else if (response.status < 500) {
|
||||
// client error
|
||||
retry = false;
|
||||
} else {
|
||||
// server error
|
||||
retry = true;
|
||||
}
|
||||
} catch (error) {
|
||||
if (Utils.isNwjs() || window.cordova) {
|
||||
// local file error
|
||||
retry = false;
|
||||
} else {
|
||||
// network error
|
||||
retry = true;
|
||||
}
|
||||
}
|
||||
if (!retry) {
|
||||
const error = new Error('Failed to load: ' + url);
|
||||
SceneManager.catchException(error);
|
||||
throw error;
|
||||
} else if (_retryCount < this._defaultRetryInterval.length) {
|
||||
await new Promise(resolve =>
|
||||
setTimeout(resolve, this._defaultRetryInterval[_retryCount])
|
||||
);
|
||||
return this.fetchWithRetry(method, url, _retryCount + 1);
|
||||
} else {
|
||||
if (this._reloaders.length === 0) {
|
||||
Graphics.printLoadingError(url);
|
||||
SceneManager.stop();
|
||||
}
|
||||
return new Promise(resolve =>
|
||||
this._reloaders.push(() =>
|
||||
resolve(this.fetchWithRetry(method, url, 0))
|
||||
)
|
||||
);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
WebAudio.prototype.clear = function() {
|
||||
this.stop();
|
||||
this._chunks = [];
|
||||
this._gainNode = null;
|
||||
this._pannerNode = null;
|
||||
this._totalTime = 0;
|
||||
this._sampleRate = 0;
|
||||
this._loopStart = 0;
|
||||
this._loopLength = 0;
|
||||
this._startTime = 0;
|
||||
this._volume = 1;
|
||||
this._pitch = 1;
|
||||
this._pan = 0;
|
||||
this._loadedTime = 0;
|
||||
this._offset = 0;
|
||||
this._loadListeners = [];
|
||||
this._stopListeners = [];
|
||||
this._hasError = false;
|
||||
this._autoPlay = false;
|
||||
this._isReady = false;
|
||||
this._isPlaying = false;
|
||||
this._loop = false;
|
||||
};
|
||||
|
||||
WebAudio.prototype._load = async function(url) {
|
||||
if (WebAudio._context) {
|
||||
if (Decrypter.hasEncryptedAudio) {
|
||||
url = Decrypter.extToEncryptExt(url);
|
||||
}
|
||||
const reader = await ResourceHandler.fetchWithRetry('stream', url);
|
||||
this._loading(reader);
|
||||
}
|
||||
};
|
||||
|
||||
WebAudio.prototype._loading = async function(reader) {
|
||||
try {
|
||||
const decode = stbvorbis.decodeStream(result => this._onDecode(result));
|
||||
while (true) {
|
||||
const { done, value } = await reader.read();
|
||||
if (done) {
|
||||
decode({ eof: true });
|
||||
return;
|
||||
}
|
||||
let array = value;
|
||||
if (Decrypter.hasEncryptedAudio) {
|
||||
array = Decrypter.decryptUint8Array(array);
|
||||
}
|
||||
this._readLoopComments(array);
|
||||
decode({ data: array, eof: false });
|
||||
}
|
||||
} catch (error) {
|
||||
console.error(error);
|
||||
const autoPlay = this._autoPlay;
|
||||
const loop = this._loop;
|
||||
const pos = this.seek();
|
||||
this.initialize(this._url);
|
||||
if (autoPlay) {
|
||||
this.play(loop, pos);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
WebAudio.prototype._onDecode = function(result) {
|
||||
if (result.error) {
|
||||
console.error(result.error);
|
||||
return;
|
||||
}
|
||||
if (result.eof) {
|
||||
this._totalTime = this._loadedTime;
|
||||
if (this._loopLength === 0) {
|
||||
this._loopStart = 0;
|
||||
this._loopLength = this._totalTime;
|
||||
if (this._loop) {
|
||||
this._createSourceNodes();
|
||||
}
|
||||
} else if (this._totalTime < this._loopStart + this._loopLength) {
|
||||
this._loopLength = this._totalTime - this._loopStart;
|
||||
if (this._loop) {
|
||||
this._createSourceNodes();
|
||||
}
|
||||
}
|
||||
if (this._totalTime <= this.seek()) {
|
||||
this.stop();
|
||||
}
|
||||
return;
|
||||
}
|
||||
if (result.data[0].length === 0) {
|
||||
return;
|
||||
}
|
||||
let buffer;
|
||||
try {
|
||||
buffer = WebAudio._context.createBuffer(
|
||||
result.data.length,
|
||||
result.data[0].length,
|
||||
result.sampleRate
|
||||
);
|
||||
} catch (error) {
|
||||
if (8000 <= result.sampleRate && result.sampleRate < 22050) {
|
||||
result.sampleRate *= 3;
|
||||
for (let i = 0; i < result.data.length; i++) {
|
||||
const old = result.data[i];
|
||||
result.data[i] = new Float32Array(result.data[i].length * 3);
|
||||
for (let j = 0; j < old.length; j++) {
|
||||
result.data[i][j * 3] = old[j];
|
||||
result.data[i][j * 3 + 1] = old[j];
|
||||
result.data[i][j * 3 + 2] = old[j];
|
||||
}
|
||||
}
|
||||
buffer = WebAudio._context.createBuffer(
|
||||
result.data.length,
|
||||
result.data[0].length,
|
||||
result.sampleRate
|
||||
);
|
||||
} else {
|
||||
throw error;
|
||||
}
|
||||
}
|
||||
for (let i = 0; i < result.data.length; i++) {
|
||||
if (buffer.copyToChannel) {
|
||||
buffer.copyToChannel(result.data[i], i);
|
||||
} else {
|
||||
buffer.getChannelData(i).set(result.data[i]);
|
||||
}
|
||||
}
|
||||
const chunk = { buffer, sourceNode: null, when: this._loadedTime };
|
||||
this._chunks.push(chunk);
|
||||
this._loadedTime += buffer.duration;
|
||||
this._createSourceNode(chunk);
|
||||
if (!this._isReady && this._loadedTime >= this._offset) {
|
||||
this._isReady = true;
|
||||
this._onLoad();
|
||||
}
|
||||
};
|
||||
|
||||
Object.defineProperty(WebAudio.prototype, 'pitch', {
|
||||
get: function() {
|
||||
return this._pitch;
|
||||
},
|
||||
set: function(value) {
|
||||
if (this._pitch !== value) {
|
||||
this._pitch = value;
|
||||
if (this.isPlaying()) {
|
||||
this.play(this._loop, 0);
|
||||
}
|
||||
}
|
||||
},
|
||||
configurable: true
|
||||
});
|
||||
|
||||
WebAudio.prototype.isReady = function() {
|
||||
return this._isReady;
|
||||
};
|
||||
|
||||
WebAudio.prototype.isPlaying = function() {
|
||||
return this._isPlaying;
|
||||
};
|
||||
|
||||
WebAudio.prototype.play = function(loop, offset) {
|
||||
this._autoPlay = true;
|
||||
this._loop = loop;
|
||||
this._offset = offset || 0;
|
||||
if (this._loop && this._loopLength > 0) {
|
||||
while (this._offset >= this._loopStart + this._loopLength) {
|
||||
this._offset -= this._loopLength;
|
||||
}
|
||||
}
|
||||
if (this.isReady()) {
|
||||
this._startPlaying();
|
||||
}
|
||||
};
|
||||
|
||||
WebAudio.prototype.stop = function() {
|
||||
const wasPlaying = this.isPlaying();
|
||||
this._isPlaying = false;
|
||||
this._autoPlay = false;
|
||||
this._removeNodes();
|
||||
if (this._stopListeners && wasPlaying) {
|
||||
this._stopListeners.forEach(listener => listener());
|
||||
this._stopListeners.length = 0;
|
||||
}
|
||||
};
|
||||
|
||||
WebAudio.prototype.seek = function() {
|
||||
if (WebAudio._context && this.isPlaying()) {
|
||||
let pos =
|
||||
(WebAudio._context.currentTime - this._startTime) * this._pitch;
|
||||
if (this._loop && this._loopLength > 0) {
|
||||
while (pos >= this._loopStart + this._loopLength) {
|
||||
pos -= this._loopLength;
|
||||
}
|
||||
}
|
||||
return pos;
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
};
|
||||
|
||||
WebAudio.prototype._startPlaying = function() {
|
||||
this._isPlaying = true;
|
||||
this._startTime =
|
||||
WebAudio._context.currentTime - this._offset / this._pitch;
|
||||
this._removeNodes();
|
||||
this._createNodes();
|
||||
this._connectNodes();
|
||||
this._createSourceNodes();
|
||||
};
|
||||
|
||||
WebAudio.prototype._calcSourceNodeParams = function(chunk) {
|
||||
const currentTime = WebAudio._context.currentTime;
|
||||
const chunkEnd = chunk.when + chunk.buffer.duration;
|
||||
const pos = this.seek();
|
||||
let when, offset, duration;
|
||||
if (this._loop && this._loopLength) {
|
||||
const loopEnd = this._loopStart + this._loopLength;
|
||||
if (pos <= chunk.when) {
|
||||
when = currentTime + (chunk.when - pos) / this._pitch;
|
||||
} else if (pos <= (window.AudioContext ? chunkEnd : chunkEnd - 0.0001)) {
|
||||
when = currentTime;
|
||||
offset = pos - chunk.when;
|
||||
} else if (this._loopStart <= pos) {
|
||||
when =
|
||||
currentTime +
|
||||
(chunk.when - pos + this._loopLength) / this._pitch;
|
||||
} else {
|
||||
return;
|
||||
}
|
||||
if (this._loopStart <= pos && chunk.when < this._loopStart) {
|
||||
if (!offset) {
|
||||
when += (this._loopStart - chunk.when) / this._pitch;
|
||||
offset = this._loopStart - chunk.when;
|
||||
}
|
||||
if (chunk.buffer.duration <= offset) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
if (loopEnd < chunkEnd) {
|
||||
if (!offset) {
|
||||
offset = 0;
|
||||
}
|
||||
duration = loopEnd - chunk.when - offset;
|
||||
if (duration <= 0) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (pos <= chunk.when) {
|
||||
when = currentTime + (chunk.when - pos) / this._pitch;
|
||||
} else if (pos <= (window.AudioContext ? chunkEnd : chunkEnd - 0.0001)) {
|
||||
when = currentTime;
|
||||
offset = pos - chunk.when;
|
||||
} else {
|
||||
return;
|
||||
}
|
||||
}
|
||||
return { when, offset, duration };
|
||||
};
|
||||
|
||||
WebAudio.prototype._createSourceNode = function(chunk) {
|
||||
if (!this.isPlaying() || !chunk) {
|
||||
return;
|
||||
}
|
||||
if (chunk.sourceNode) {
|
||||
chunk.sourceNode.onended = null;
|
||||
chunk.sourceNode.stop();
|
||||
chunk.sourceNode = null;
|
||||
}
|
||||
const params = this._calcSourceNodeParams(chunk);
|
||||
if (!params) {
|
||||
if (!this._reservedSeName && this._loopLength) {
|
||||
this._chunks[this._chunks.indexOf(chunk)] = null;
|
||||
}
|
||||
return;
|
||||
}
|
||||
const { when, offset, duration } = params;
|
||||
const context = WebAudio._context;
|
||||
const sourceNode = context.createBufferSource();
|
||||
sourceNode.onended = _ => {
|
||||
this._createSourceNode(chunk);
|
||||
if (this._totalTime && this._totalTime <= this.seek()) {
|
||||
this.stop();
|
||||
}
|
||||
};
|
||||
sourceNode.buffer = chunk.buffer;
|
||||
sourceNode.playbackRate.setValueAtTime(this._pitch, context.currentTime);
|
||||
sourceNode.connect(this._gainNode);
|
||||
sourceNode.start(when, offset, duration);
|
||||
chunk.sourceNode = sourceNode;
|
||||
};
|
||||
|
||||
WebAudio.prototype._createSourceNodes = function() {
|
||||
this._chunks.forEach(chunk => this._createSourceNode(chunk));
|
||||
};
|
||||
|
||||
WebAudio.prototype._createNodes = function() {
|
||||
const context = WebAudio._context;
|
||||
this._gainNode = context.createGain();
|
||||
this._gainNode.gain.setValueAtTime(this._volume, context.currentTime);
|
||||
this._pannerNode = context.createPanner();
|
||||
this._pannerNode.panningModel = 'equalpower';
|
||||
this._updatePanner();
|
||||
};
|
||||
|
||||
WebAudio.prototype._connectNodes = function() {
|
||||
this._gainNode.connect(this._pannerNode);
|
||||
this._pannerNode.connect(WebAudio._masterGainNode);
|
||||
};
|
||||
|
||||
WebAudio.prototype._removeNodes = function() {
|
||||
if (this._chunks) {
|
||||
this._chunks
|
||||
.filter(chunk => chunk && chunk.sourceNode)
|
||||
.forEach(chunk => {
|
||||
chunk.sourceNode.onended = null;
|
||||
chunk.sourceNode.stop();
|
||||
chunk.sourceNode = null;
|
||||
});
|
||||
}
|
||||
this._gainNode = null;
|
||||
this._pannerNode = null;
|
||||
};
|
||||
|
||||
WebAudio.prototype._onLoad = function() {
|
||||
if (this._autoPlay) {
|
||||
this.play(this._loop, this._offset);
|
||||
}
|
||||
this._loadListeners.forEach(listener => listener());
|
||||
this._loadListeners.length = 0;
|
||||
};
|
||||
|
||||
WebAudio.prototype._readLoopComments = function(array) {
|
||||
if (this._sampleRate === 0) {
|
||||
this._readOgg(array);
|
||||
if (this._loopLength > 0 && this._sampleRate > 0) {
|
||||
this._loopStart /= this._sampleRate;
|
||||
this._loopLength /= this._sampleRate;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
Decrypter.decryptUint8Array = function(uint8Array) {
|
||||
const ref = this.SIGNATURE + this.VER + this.REMAIN;
|
||||
for (let i = 0; i < this._headerlength; i++) {
|
||||
if (uint8Array[i] !== parseInt('0x' + ref.substr(i * 2, 2), 16)) {
|
||||
return uint8Array;
|
||||
}
|
||||
}
|
||||
uint8Array = new Uint8Array(uint8Array.buffer, this._headerlength);
|
||||
this.readEncryptionkey();
|
||||
for (var i = 0; i < this._headerlength; i++) {
|
||||
uint8Array[i] = uint8Array[i] ^ parseInt(this._encryptionKey[i], 16);
|
||||
}
|
||||
return uint8Array;
|
||||
};
|
||||
|
||||
}
|
||||
518
www/js/plugins/AutomaticState.js
Normal file
518
www/js/plugins/AutomaticState.js
Normal file
|
|
@ -0,0 +1,518 @@
|
|||
//=============================================================================
|
||||
// AutomaticState.js
|
||||
// ----------------------------------------------------------------------------
|
||||
// Copyright (c) 2015-2017 Triacontane
|
||||
// This software is released under the MIT License.
|
||||
// http://opensource.org/licenses/mit-license.php
|
||||
// ----------------------------------------------------------------------------
|
||||
// Version
|
||||
// 1.4.0 2017/09/13 自動ステート対象をアクター、敵キャラIDで限定するときに複数指定できる機能を追加
|
||||
// 1.3.1 2017/08/06 メモリ上にロードされていないアクターの自動ステートチェックが実行されるとエラーになる現象を修正
|
||||
// 処理の軽量化
|
||||
// 1.3.0 2017/07/21 パーティの並び順で自動ステートを付与する機能を追加
|
||||
// 1.2.5 2017/05/27 競合の可能性のある記述(Objectクラスへのプロパティ追加)をリファクタリング
|
||||
// 1.2.4 2017/05/27 全回復の直後に自動ステートが解除されてしまう問題を修正
|
||||
// 1.2.3 2017/02/16 1.2.0以降、下限MPの設定が無効になっていた問題を修正
|
||||
// 1.2.2 2017/02/07 端末依存の記述を削除
|
||||
// 1.2.1 2017/01/17 1.2.0でスイッチの項目が正しく機能しなかった問題を修正
|
||||
// 1.2.0 2017/01/14 ステート自動付与の条件に計算式を適用できる機能を追加
|
||||
// 処理の軽量化
|
||||
// 1.1.2 2016/06/03 スペルミス修正
|
||||
// 1.1.1 2016/05/23 条件式で割合を算出する際に端数を切り捨てるよう修正
|
||||
// 1.1.0 2016/05/22 複数の条件を適用できるよう修正
|
||||
// 1.0.2 2016/04/30 アクターと敵キャラ限定のオートステートが一部正しく機能していなかった問題を修正
|
||||
// 1.0.1 2016/02/14 オートステートの追加時にメッセージを表示する仕様を追加
|
||||
// 1.0.0 2016/02/08 初版
|
||||
// ----------------------------------------------------------------------------
|
||||
// [Blog] : https://triacontane.blogspot.jp/
|
||||
// [Twitter]: https://twitter.com/triacontane/
|
||||
// [GitHub] : https://github.com/triacontane/
|
||||
//=============================================================================
|
||||
|
||||
/*:
|
||||
* @plugindesc ステート自動付与プラグイン
|
||||
* @author トリアコンタン
|
||||
*
|
||||
* @help AutomaticState.js
|
||||
*
|
||||
* 条件を満たしている間、指定したステートを付与します。
|
||||
* ステートのメモ欄に以下の書式で条件を入力してください。
|
||||
*
|
||||
* メモ欄書式(ステートIDには制御文字を利用できます)
|
||||
*
|
||||
* 1. 自動付与ステートの条件
|
||||
* <AS上限HP:(HPの割合[百分率])>
|
||||
* 指定したHP(割合)を上回っている(>=)間、対象ステートを付与する。
|
||||
* <AS下限HP:(HPの割合[百分率])>
|
||||
* 指定したHP(割合)を下回っている(<=)間、対象ステートを付与する。
|
||||
* <AS上限MP:(MPの割合[百分率])>
|
||||
* 指定したMP(割合)を上回っている(>=)間、対象ステートを付与する。
|
||||
* <AS下限MP:(MPの割合[百分率])>
|
||||
* 指定したMP(割合)を下回っている(<=)間、対象ステートを付与する。
|
||||
* <AS上限TP:(TPの割合[百分率])>
|
||||
* 指定したMP(割合)を上回っている(>=)間、対象ステートを付与する。
|
||||
* <AS下限TP:(TPの割合[百分率])>
|
||||
* 指定したMP(割合)を下回っている(<=)間、対象ステートを付与する。
|
||||
* <AS武器装備:(武器ID)>
|
||||
* 指定した武器を装備している間、対象ステートを付与する。
|
||||
* <AS防具装備:(防具ID)>
|
||||
* 指定した武器を装備している間、対象ステートを付与する。
|
||||
* <ASスイッチ:(スイッチID)>
|
||||
* 指定したスイッチがONになっている間、対象ステートを付与する。
|
||||
* <AS計算式:(JS計算式)>
|
||||
* 指定したJavaScript計算式がtrueの間、対象ステートを付与する。
|
||||
* <AS並び順:(インデックス)>
|
||||
* 並び順(1~)が指定した値と一致する間、対象ステートを付与する。
|
||||
*
|
||||
* 計算式中で不等号を使いたい場合、以下のように記述してください。
|
||||
* < → <
|
||||
* > → >
|
||||
* 例:<AS計算式:\v[2] > 1> // 変数[2]が1より大きい場合
|
||||
*
|
||||
* 2. 自動付与ステートの対象
|
||||
* <ASアクター:(アクターID)>
|
||||
* ステート自動付与の対象を指定したアクターのみに設定する。
|
||||
* IDの指定がない場合、全てのアクターに有効になる。
|
||||
* 複数のアクターを指定したい場合、数値をカンマで区切る。
|
||||
* 例:<ASアクター:1,2,3>
|
||||
*
|
||||
* <AS敵キャラ:(敵キャラID)>
|
||||
* ステート自動付与の対象を指定した敵キャラのみに設定する。
|
||||
* IDの指定がない場合、全ての敵キャラに有効になる。
|
||||
* 複数の敵キャラを指定したい場合、数値をカンマで区切る。
|
||||
* 例:<AS敵キャラ:1,2,3>
|
||||
*
|
||||
* 複数の条件が指定された場合は、全ての条件を満たした場合のみ
|
||||
* ステートが付与されます。
|
||||
*
|
||||
* スクリプト
|
||||
* 自動付与ステートが有効になったときに所定のメッセージを表示する場合
|
||||
* $gameSystem.automaticStateAddMessage = true;
|
||||
*
|
||||
* 自動付与ステートが有効になったときに所定のメッセージを表示しない場合
|
||||
* $gameSystem.automaticStateAddMessage = false;
|
||||
*
|
||||
* 利用規約:
|
||||
* 作者に無断で改変、再配布が可能で、利用形態(商用、18禁利用等)
|
||||
* についても制限はありません。
|
||||
* このプラグインはもうあなたのものです。
|
||||
*/
|
||||
|
||||
(function () {
|
||||
'use strict';
|
||||
var metaTagPrefix = 'AS';
|
||||
|
||||
var getArgNumber = function (arg, min, max) {
|
||||
if (arguments.length < 2) min = -Infinity;
|
||||
if (arguments.length < 3) max = Infinity;
|
||||
return (parseInt(convertEscapeCharacters(arg)) || 0).clamp(min, max);
|
||||
};
|
||||
|
||||
var convertEscapeCharacters = function(text) {
|
||||
if (text == null || text === true) text = '';
|
||||
text = text.replace(/>?/gi, '>');
|
||||
text = text.replace(/<?/gi, '<');
|
||||
text = text.replace(/\\/g, '\x1b');
|
||||
text = text.replace(/\x1b\x1b/g, '\\');
|
||||
text = text.replace(/\x1bV\[(\d+)\]/gi, function() {
|
||||
return $gameVariables.value(parseInt(arguments[1]));
|
||||
}.bind(this));
|
||||
text = text.replace(/\x1bV\[(\d+)\]/gi, function() {
|
||||
return $gameVariables.value(parseInt(arguments[1]));
|
||||
}.bind(this));
|
||||
text = text.replace(/\x1bN\[(\d+)\]/gi, function() {
|
||||
var actor = parseInt(arguments[1]) >= 1 ? $gameActors.actor(parseInt(arguments[1])) : null;
|
||||
return actor ? actor.name() : '';
|
||||
}.bind(this));
|
||||
text = text.replace(/\x1bP\[(\d+)\]/gi, function() {
|
||||
var actor = parseInt(arguments[1]) >= 1 ? $gameParty.members()[parseInt(arguments[1]) - 1] : null;
|
||||
return actor ? actor.name() : '';
|
||||
}.bind(this));
|
||||
text = text.replace(/\x1bG/gi, TextManager.currencyUnit);
|
||||
return text;
|
||||
};
|
||||
|
||||
var isEmpty = function(that) {
|
||||
return Object.keys(that).length <= 0;
|
||||
};
|
||||
|
||||
var iterate = function(that, handler) {
|
||||
Object.keys(that).forEach(function(key, index) {
|
||||
handler.call(that, key, that[key], index);
|
||||
});
|
||||
};
|
||||
|
||||
//=============================================================================
|
||||
// Game_System
|
||||
// 自動付与ステートのメッセージ表示フラグを定義します。
|
||||
//=============================================================================
|
||||
var _Game_System_initialize = Game_System.prototype.initialize;
|
||||
Game_System.prototype.initialize = function() {
|
||||
_Game_System_initialize.apply(this, arguments);
|
||||
this.automaticStateAddMessage = null;
|
||||
};
|
||||
|
||||
//=============================================================================
|
||||
// Game_BattlerBase
|
||||
// 自動付与ステートの更新処理を定義します。
|
||||
//=============================================================================
|
||||
Game_BattlerBase.prototype.updateAutomaticState = function() {
|
||||
DataManager.iterateAutomaticState(function(state) {
|
||||
if (!state || isEmpty(state.meta)) return;
|
||||
var stateId = state.id;
|
||||
var result = this.isAutomaticValid(state);
|
||||
if (result === null) return;
|
||||
if (result) {
|
||||
if (!this.isStateAffected(stateId) && this.isStateAddable(stateId)) {
|
||||
this.addState(stateId);
|
||||
if ($gameSystem.automaticStateAddMessage) this.showAddedStates();
|
||||
this._result.deleteAddedStates(stateId);
|
||||
}
|
||||
} else {
|
||||
if (this.isStateAffected(stateId)) {
|
||||
this.removeState(stateId);
|
||||
this._result.deleteRemovedStates(stateId);
|
||||
}
|
||||
}
|
||||
}.bind(this));
|
||||
};
|
||||
|
||||
Game_BattlerBase.prototype.showAddedStates = function() {
|
||||
};
|
||||
|
||||
Game_BattlerBase.prototype.isAutomaticValid = function(state, result) {
|
||||
this._automaticTargetState = state;
|
||||
if (this.isAutoStateBattler()) {
|
||||
result = true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
var switchId = this.getStateMetaNumber(0, 1);
|
||||
if (switchId !== null) {
|
||||
if ($gameSwitches.value(switchId)) {
|
||||
result = true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
var formula = this.getStateMetaString(1);
|
||||
if (formula !== null) {
|
||||
if (eval(formula)) {
|
||||
result = true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
var upperLimitHp = this.getStateMetaNumber(2, 0, 100);
|
||||
if (upperLimitHp !== null) {
|
||||
if (Math.floor(this.hpRate() * 100) >= upperLimitHp) {
|
||||
result = true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
var lowerLimitHp = this.getStateMetaNumber(3, 0, 100);
|
||||
if (lowerLimitHp !== null) {
|
||||
if (Math.floor(this.hpRate() * 100) <= lowerLimitHp) {
|
||||
result = true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
var upperLimitMp = this.getStateMetaNumber(4, 0, 100);
|
||||
if (upperLimitMp !== null) {
|
||||
if (Math.floor(this.mpRate() * 100) >= upperLimitMp) {
|
||||
result = true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
var lowerLimitMp = this.getStateMetaNumber(5, 0, 100);
|
||||
if (lowerLimitMp !== null) {
|
||||
if (Math.floor(this.mpRate() * 100) <= lowerLimitMp) {
|
||||
result = true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
var upperLimitTp = this.getStateMetaNumber(6, 0, 100);
|
||||
if (upperLimitTp !== null) {
|
||||
if (Math.floor(this.tpRate() * 100) >= upperLimitTp) {
|
||||
result = true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
var lowerLimitTp = this.getStateMetaNumber(7, 0, 100);
|
||||
if (lowerLimitTp !== null) {
|
||||
if (Math.floor(this.tpRate() * 100) <= lowerLimitTp) {
|
||||
result = true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
var unitIndex = this.getStateMetaNumber(12, 0);
|
||||
if (unitIndex !== null) {
|
||||
if (this.index() === unitIndex - 1) {
|
||||
result = true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return result;
|
||||
};
|
||||
|
||||
Game_BattlerBase.prototype.index = function() {
|
||||
return 0;
|
||||
};
|
||||
|
||||
Game_BattlerBase.prototype.getStateMetaNumber = function(tagIndex, min, max) {
|
||||
var value = this._automaticTargetState.meta[DataManager.getAutomaticTagName(tagIndex)];
|
||||
if (arguments.length < 2) min = -Infinity;
|
||||
if (arguments.length < 3) max = Infinity;
|
||||
return value !== undefined ? getArgNumber(value, min, max) : null;
|
||||
};
|
||||
|
||||
Game_BattlerBase.prototype.getStateMetaString = function(tagIndex) {
|
||||
var value = this._automaticTargetState.meta[DataManager.getAutomaticTagName(tagIndex)];
|
||||
return value !== undefined ? convertEscapeCharacters(value) : null;
|
||||
};
|
||||
|
||||
Game_BattlerBase.prototype.isAutoStateBattler = function() {
|
||||
if (this.isStateMetaInfo(this.getOppositeBattlerCheckTagIndex())) {
|
||||
return false;
|
||||
}
|
||||
var battlerIdValue = this.getStateMetaString(this.getBattlerCheckTagIndex());
|
||||
if (!battlerIdValue) {
|
||||
return true;
|
||||
}
|
||||
var batterId = this.getBattlerId();
|
||||
return battlerIdValue.split(',').some(function(stateTargetIdText) {
|
||||
return batterId === parseInt(stateTargetIdText);
|
||||
});
|
||||
};
|
||||
|
||||
Game_BattlerBase.prototype.isStateMetaInfo = function(tagIndex) {
|
||||
return this._automaticTargetState.meta.hasOwnProperty(DataManager.getAutomaticTagName(tagIndex));
|
||||
};
|
||||
|
||||
var _Game_BattlerBase_setHp = Game_BattlerBase.prototype.setHp;
|
||||
Game_BattlerBase.prototype.setHp = function(hp) {
|
||||
_Game_BattlerBase_setHp.apply(this, arguments);
|
||||
this.updateAutomaticState();
|
||||
};
|
||||
|
||||
var _Game_BattlerBase_setMp = Game_BattlerBase.prototype.setMp;
|
||||
Game_BattlerBase.prototype.setMp = function(mp) {
|
||||
_Game_BattlerBase_setMp.apply(this, arguments);
|
||||
this.updateAutomaticState();
|
||||
};
|
||||
|
||||
var _Game_BattlerBase_setTp = Game_BattlerBase.prototype.setTp;
|
||||
Game_BattlerBase.prototype.setTp = function(tp) {
|
||||
_Game_BattlerBase_setTp.apply(this, arguments);
|
||||
this.updateAutomaticState();
|
||||
};
|
||||
|
||||
var _Game_BattlerBase_recoverAll = Game_BattlerBase.prototype.recoverAll;
|
||||
Game_BattlerBase.prototype.recoverAll = function() {
|
||||
_Game_BattlerBase_recoverAll.apply(this, arguments);
|
||||
this.updateAutomaticState();
|
||||
};
|
||||
|
||||
Game_BattlerBase.prototype.getBattlerId = function() {
|
||||
return 0;
|
||||
};
|
||||
|
||||
Game_BattlerBase.prototype.getBattlerCheckTagIndex = function() {
|
||||
return 0;
|
||||
};
|
||||
|
||||
Game_BattlerBase.prototype.getOppositeBattlerCheckTagIndex = function() {
|
||||
return 0;
|
||||
};
|
||||
|
||||
//=============================================================================
|
||||
// Game_Actors
|
||||
// データが存在するかどうかを返します。
|
||||
//=============================================================================
|
||||
Game_Actors.prototype.isExistData = function(actorId) {
|
||||
return !!this._data[actorId];
|
||||
};
|
||||
|
||||
//=============================================================================
|
||||
// Game_Actor
|
||||
// 自動付与ステートの更新処理を定義します。
|
||||
//=============================================================================
|
||||
Game_Actor.prototype.updateAutomaticState = function() {
|
||||
if (!$gameActors.isExistData(this._actorId)) return;
|
||||
Game_BattlerBase.prototype.updateAutomaticState.call(this);
|
||||
};
|
||||
|
||||
Game_Actor.prototype.isAutomaticValid = function(state) {
|
||||
this._automaticTargetState = state;
|
||||
var result = null;
|
||||
var weaponId = this.getStateMetaNumber(10, 1);
|
||||
if (weaponId !== null) {
|
||||
if (this.hasWeapon($dataWeapons[weaponId])) {
|
||||
result = true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
var armorId = this.getStateMetaNumber(11, 1);
|
||||
if (armorId !== null) {
|
||||
if (this.hasArmor($dataArmors[armorId])) {
|
||||
result = true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return Game_BattlerBase.prototype.isAutomaticValid.call(this, state, result);
|
||||
};
|
||||
|
||||
var _Game_Actor_changeEquip = Game_Actor.prototype.changeEquip;
|
||||
Game_Actor.prototype.changeEquip = function(slotId, item) {
|
||||
_Game_Actor_changeEquip.apply(this, arguments);
|
||||
this.updateAutomaticState();
|
||||
};
|
||||
|
||||
Game_Actor.prototype.getBattlerId = function() {
|
||||
return this._actorId;
|
||||
};
|
||||
|
||||
Game_Actor.prototype.getBattlerCheckTagIndex = function() {
|
||||
return 8;
|
||||
};
|
||||
|
||||
Game_Actor.prototype.getOppositeBattlerCheckTagIndex = function() {
|
||||
return Game_Enemy.prototype.getBattlerCheckTagIndex.call(this);
|
||||
};
|
||||
|
||||
//=============================================================================
|
||||
// Game_Enemy
|
||||
// 自動付与ステートの更新処理を定義します。
|
||||
//=============================================================================
|
||||
Game_Enemy.prototype.getBattlerId = function() {
|
||||
return this._enemyId;
|
||||
};
|
||||
|
||||
Game_Enemy.prototype.getBattlerCheckTagIndex = function() {
|
||||
return 9;
|
||||
};
|
||||
|
||||
Game_Enemy.prototype.getOppositeBattlerCheckTagIndex = function() {
|
||||
return Game_Actor.prototype.getBattlerCheckTagIndex.call(this);
|
||||
};
|
||||
|
||||
//=============================================================================
|
||||
// Game_Party
|
||||
// 全てのアクターの自動付与ステートを更新します。
|
||||
//=============================================================================
|
||||
Game_Party.prototype.requestUpdateAutomaticState = function() {
|
||||
this._requestUpdateAutomaticState = true;
|
||||
};
|
||||
|
||||
Game_Party.prototype.updateAutomaticState = function() {
|
||||
this.members().forEach(function(actor) {
|
||||
actor.updateAutomaticState();
|
||||
});
|
||||
this._lastUpdateFrameAutomaticState = Graphics.frameCount;
|
||||
};
|
||||
|
||||
Game_Party.prototype.updateAutomaticStateIfRequested = function() {
|
||||
var coolTime = (this._lastUpdateFrameAutomaticState + 10 > Graphics.frameCount);
|
||||
if (this._requestUpdateAutomaticState && !coolTime) {
|
||||
this.updateAutomaticState();
|
||||
this._requestUpdateAutomaticState = false;
|
||||
}
|
||||
};
|
||||
|
||||
var _Game_Party_swapOrder = Game_Party.prototype.swapOrder;
|
||||
Game_Party.prototype.swapOrder = function(index1, index2) {
|
||||
_Game_Party_swapOrder.apply(this, arguments);
|
||||
this.updateAutomaticState();
|
||||
};
|
||||
|
||||
//=============================================================================
|
||||
// Game_Map
|
||||
// 場所移動時に自動付与ステートを更新します。
|
||||
//=============================================================================
|
||||
var _Game_Map_refreshIfNeeded = Game_Map.prototype.refreshIfNeeded;
|
||||
Game_Map.prototype.refreshIfNeeded = function() {
|
||||
_Game_Map_refreshIfNeeded.apply(this, arguments);
|
||||
$gameParty.updateAutomaticStateIfRequested();
|
||||
};
|
||||
|
||||
var _Game_Map_setup = Game_Map.prototype.setup;
|
||||
Game_Map.prototype.setup = function(mapId) {
|
||||
_Game_Map_setup.apply(this, arguments);
|
||||
$gameParty.updateAutomaticState();
|
||||
};
|
||||
|
||||
var _Game_Map_refresh = Game_Map.prototype.refresh;
|
||||
Game_Map.prototype.refresh = function() {
|
||||
_Game_Map_refresh.apply(this, arguments);
|
||||
$gameParty.requestUpdateAutomaticState();
|
||||
};
|
||||
|
||||
//=============================================================================
|
||||
// Game_ActionResult
|
||||
// ステート付与、解除時のメッセージを抑制します。
|
||||
//=============================================================================
|
||||
Game_ActionResult.prototype.deleteRemovedStates = function(stateId) {
|
||||
iterate(this.removedStates, function(key, value, index) {
|
||||
if (value === stateId) this.removedStates.splice(index, 1);
|
||||
}.bind(this));
|
||||
};
|
||||
|
||||
Game_ActionResult.prototype.deleteAddedStates = function(stateId) {
|
||||
iterate(this.addedStates, function(key, value, index) {
|
||||
if (value === stateId) this.addedStates.splice(index, 1);
|
||||
}.bind(this));
|
||||
};
|
||||
|
||||
//=============================================================================
|
||||
// DataManager
|
||||
// データベースのロード時に自動付与ステートのみを抽出します。
|
||||
//=============================================================================
|
||||
DataManager._automaticTagNames = [
|
||||
'スイッチ',
|
||||
'計算式',
|
||||
'上限HP',
|
||||
'下限HP',
|
||||
'上限MP',
|
||||
'下限MP',
|
||||
'上限TP',
|
||||
'下限TP',
|
||||
'アクター',
|
||||
'敵キャラ',
|
||||
'武器装備',
|
||||
'防具装備',
|
||||
'並び順'
|
||||
];
|
||||
|
||||
var _DataManager_onLoad = DataManager.onLoad;
|
||||
DataManager.onLoad = function(object) {
|
||||
_DataManager_onLoad.apply(this, arguments);
|
||||
if (object === $dataStates) {
|
||||
this.setupAutomaticState();
|
||||
}
|
||||
};
|
||||
|
||||
DataManager.setupAutomaticState = function() {
|
||||
this._automaticStates = $dataStates.filter(function(state) {
|
||||
return this._automaticTagNames.some(function(tagName) {
|
||||
return state && !!state.meta[metaTagPrefix + tagName];
|
||||
})
|
||||
}.bind(this));
|
||||
};
|
||||
|
||||
DataManager.iterateAutomaticState = function(callBackFunc) {
|
||||
this._automaticStates.forEach(callBackFunc);
|
||||
};
|
||||
|
||||
DataManager.getAutomaticTagName = function(index) {
|
||||
return metaTagPrefix + this._automaticTagNames[index];
|
||||
};
|
||||
})();
|
||||
647
www/js/plugins/BB_CustomSaveWindow.js
Normal file
647
www/js/plugins/BB_CustomSaveWindow.js
Normal file
|
|
@ -0,0 +1,647 @@
|
|||
//=============================================================================
|
||||
// BB_CustomSaveWindow.js
|
||||
// Copyright (c) 2016 BB ENTERTAINMENT
|
||||
//=============================================================================
|
||||
|
||||
/*:
|
||||
* @plugindesc セーブウインドウ改造プラグイン
|
||||
* @author ビービー
|
||||
*
|
||||
*
|
||||
* @param OutsideFrameColor
|
||||
* @desc 外枠の色を指定(テキストカラー0~31)
|
||||
* デフォルト:0
|
||||
* @default 0
|
||||
*
|
||||
* @param OutsideFrameOpacity
|
||||
* @desc 外枠の透明度を指定(0~255)
|
||||
* デフォルト:64
|
||||
* @default 64
|
||||
*
|
||||
* @param InsideFrameColor
|
||||
* @desc 内枠の色を指定(テキストカラー0~31)
|
||||
* デフォルト:0
|
||||
* @default 0
|
||||
*
|
||||
* @param InsideFrameOpacity
|
||||
* @desc 内枠の透明度を指定(0~255)
|
||||
* デフォルト:64
|
||||
* @default 64
|
||||
*
|
||||
* @param MaxItem
|
||||
* @desc 内枠の数を指定(1~4)
|
||||
* デフォルト:4(0で非表示)
|
||||
* @default 4
|
||||
*
|
||||
* @param Item0
|
||||
* @desc ファイルID右に表示される項目 0=非表示 1=タイトル 2=プレイ時間 3=マップ名 4=所持金 5=セーブ回数 6=変数項1 7=変数項2 8=変数項3 9=変数項4
|
||||
* @default 1
|
||||
*
|
||||
* @param Item0Length
|
||||
* @desc ファイルID右に表示される項目の横幅(Item5(右上に表示される項目)に影響)
|
||||
* @default 300
|
||||
*
|
||||
* @param Item1title
|
||||
* @desc 右下に表示される項目のタイトル
|
||||
* デフォルト:プレイ時間
|
||||
* @default プレイ時間
|
||||
*
|
||||
* @param Item1
|
||||
* @desc 右下に表示される項目 0=非表示 1=タイトル 2=プレイ時間 3=マップ名
|
||||
* 4=所持金 5=セーブ回数 6=変数項1 7=変数項2 8=変数項3 9=変数項4
|
||||
* @default 2
|
||||
*
|
||||
* @param Item2title
|
||||
* @desc 中央右に表示される項目のタイトル
|
||||
* デフォルト:現在地
|
||||
* @default 現在地
|
||||
*
|
||||
* @param Item2
|
||||
* @desc 中央右に表示される項目 0=非表示 1=タイトル 2=プレイ時間 3=マップ名
|
||||
* 4=所持金 5=セーブ回数 6=変数項1 7=変数項2 8=変数項3 9=変数項4
|
||||
* デフォルト:3
|
||||
* @default 3
|
||||
*
|
||||
* @param Item3title
|
||||
* @desc 中央下に表示される項目のタイトル
|
||||
* デフォルト:所持金
|
||||
* @default 所持金
|
||||
*
|
||||
* @param Item3
|
||||
* @desc 中央下に表示される項 0=非表示 1=タイトル 2=プレイ時間 3=マップ名
|
||||
* 4=所持金 5=セーブ回数 6=変数項1 7=変数項2 8=変数項3 9=変数項4
|
||||
* デフォルト:4
|
||||
* @default 4
|
||||
*
|
||||
* @param Item4title
|
||||
* @desc 中央に表示される項目のタイトル
|
||||
* デフォルト:セーブ回数
|
||||
* @default セーブ回数
|
||||
*
|
||||
* @param Item4
|
||||
* @desc 中央に表示される項目 0=非表示 1=タイトル 2=プレイ時間 3=マップ名
|
||||
* 4=所持金 5=セーブ回数 6=変数項1 7=変数項2 8=変数項3 9=変数項4
|
||||
* デフォルト:5
|
||||
* @default 5
|
||||
*
|
||||
* @param Item5
|
||||
* @desc 右上に表示される項目 0=非表示 1=タイトル 2=プレイ時間 3=マップ名
|
||||
* 4=所持金 5=セーブ回数 6=変数項1 7=変数項2 8=変数項3 9=変数項4
|
||||
* デフォルト:6
|
||||
* @default 6
|
||||
*
|
||||
* @param ItemValue1
|
||||
* @desc 変数項目1に入れる変数のID
|
||||
* デフォルト:1
|
||||
* @default 1
|
||||
*
|
||||
* @param ItemValue2
|
||||
* @desc 変数項目2に入れる変数のID
|
||||
* デフォルト:2
|
||||
* @default 2
|
||||
*
|
||||
* @param ItemValue3
|
||||
* @desc 変数項目3に入れる変数のID
|
||||
* デフォルト:3
|
||||
* @default 3
|
||||
*
|
||||
* @param ItemValue4
|
||||
* @desc 変数項目4に入れる変数のID
|
||||
* デフォルト:4
|
||||
* @default 4
|
||||
*
|
||||
* @param ItemValue1unit
|
||||
* @desc 変数項目1の単位
|
||||
* デフォルト:無し
|
||||
* @default
|
||||
*
|
||||
* @param ItemValue2unit
|
||||
* @desc 変数項目2の単位
|
||||
* デフォルト:無し
|
||||
* @default
|
||||
*
|
||||
* @param ItemValue3unit
|
||||
* @desc 変数項目3の単位
|
||||
* デフォルト:無し
|
||||
* @default
|
||||
*
|
||||
* @param ItemValue4unit
|
||||
* @desc 変数項目4の単位
|
||||
* デフォルト:無し
|
||||
* @default
|
||||
*
|
||||
* @param TitleFramelength1
|
||||
* @desc 項目1のタイトル枠の横幅(文字数*20+10)(0~274)
|
||||
* デフォルト:110
|
||||
* @default 110
|
||||
*
|
||||
* @param TitleFramelength2
|
||||
* @desc 項目2のタイトル枠の横幅(文字数*20+10)(0~274)
|
||||
* デフォルト:110
|
||||
* @default 110
|
||||
*
|
||||
* @param TitleFramelength3
|
||||
* @desc 項目3のタイトル枠の横幅(文字数*20+10)(0~274)
|
||||
* デフォルト:110
|
||||
* @default 110
|
||||
*
|
||||
* @param TitleFramelength4
|
||||
* @desc 項目4のタイトル枠の横幅(文字数*20+10)(0~274)
|
||||
* デフォルト:110
|
||||
* @default 110
|
||||
*
|
||||
* @param CharacterPositionY
|
||||
* @desc キャラクターグラフィックのy座標(下=6 中央=12 上=20)
|
||||
* デフォルト:6
|
||||
* @default 6
|
||||
*
|
||||
* @param LevelPositionY
|
||||
* @desc レベルのy座標(下=72 上=23)
|
||||
* デフォルト:23
|
||||
* @default 23
|
||||
*
|
||||
* @param LevelOnOff
|
||||
* @desc レベルを表示するかしないかを指定(0=非表示、1=表示)
|
||||
* デフォルト:1
|
||||
* @default 1
|
||||
*
|
||||
* @help プラグインの説明
|
||||
*
|
||||
* ■各パラメータの説明
|
||||
* プラグイン内より少しだけ詳しくパラメータの説明をしていきます。
|
||||
*
|
||||
* OutsideFrameColor
|
||||
* 外枠の色をテキストカラーの0~31で指定できます。
|
||||
* デフォルト:0
|
||||
*
|
||||
* OutsideFrameOpacity
|
||||
* 外枠の透明度を0~255の数値で指定できます(0=透明、255=不透明)
|
||||
* デフォルト:64
|
||||
*
|
||||
* InsideFrameColor
|
||||
* 内枠の色をテキストカラーの0~31で指定できます。
|
||||
* デフォルト:0
|
||||
*
|
||||
* InsideFrameOpacity
|
||||
* 内枠の透明度を0~255の数値で指定できます(0=透明、255=不透明)
|
||||
* デフォルト:64
|
||||
*
|
||||
* MaxItem
|
||||
* 内枠の数を0から4のあいだで指定できます。
|
||||
* デフォルト:4(0で非表示)
|
||||
*
|
||||
* Item0
|
||||
* ファイルID右に表示される項目を0~9の数字で指定します。
|
||||
* 0=非表示
|
||||
* 1=ゲームタイトル
|
||||
* 2=プレイ時間
|
||||
* 3=マップ名
|
||||
* 4=所持金(自動で通貨単位も表示されます)
|
||||
* 5=セーブ回数
|
||||
* 6=パラメータのItemValue1で指定した変数の値(パラメータのItemValue1unitで単位を指定できます)
|
||||
* 7=パラメータのItemValue2で指定した変数の値(パラメータのItemValue2unitで単位を指定できます)
|
||||
* 8=パラメータのItemValue3で指定した変数の値(パラメータのItemValue3unitで単位を指定できます)
|
||||
* 9=パラメータのItemValue4で指定した変数の値(パラメータのItemValue4unitで単位を指定できます)
|
||||
*
|
||||
* Item0Length
|
||||
* ファイルID右に表示される項目の横幅を指定できます。(Item5(右上に表示される項目)に影響)
|
||||
* 指定したサイズより文字列の幅が大きい場合、指定したサイズに自動で文字幅が縮小されます。
|
||||
* default 300
|
||||
*
|
||||
* Item1title
|
||||
* 右下に表示される項目のタイトルを好きな文字列で指定できます。
|
||||
* デフォルト:プレイ時間
|
||||
*
|
||||
* Item1
|
||||
* 右下に表示される項目を0~9の数字で指定します。
|
||||
* デフォルト:2
|
||||
*
|
||||
* Item2title
|
||||
* 中央右に表示される項目のタイトルを好きな文字列で指定できます。
|
||||
* デフォルト:現在地
|
||||
*
|
||||
* Item2
|
||||
* 中央右に表示される項目を0~9の数字で指定します。
|
||||
* デフォルト:3
|
||||
*
|
||||
* Item3title
|
||||
* 中央下に表示される項目のタイトルを好きな文字列で指定できます。
|
||||
* デフォルト:所持金
|
||||
*
|
||||
* Item3
|
||||
* 中央下に表示される項を0~9の数字で指定します。
|
||||
* デフォルト:4
|
||||
*
|
||||
* Item4title
|
||||
* 中央に表示される項目のタイトルを好きな文字列で指定できます。
|
||||
* デフォルト:セーブ回数
|
||||
*
|
||||
* Item4
|
||||
* 中央に表示される項目を0~9の数字で指定します。
|
||||
* デフォルト:5
|
||||
*
|
||||
* Item5
|
||||
* 右上に表示される項目を0~9の数字で指定します。
|
||||
* デフォルト:6
|
||||
*
|
||||
* ItemValue1
|
||||
* 変数項目1に入れる変数のIDを指定します。
|
||||
* デフォルト:1
|
||||
*
|
||||
* ItemValue2
|
||||
* 変数項目2に入れる変数のIDを指定します。
|
||||
* デフォルト:2
|
||||
*
|
||||
* ItemValue3
|
||||
* 変数項目3に入れる変数のIDを指定します。
|
||||
* デフォルト:3
|
||||
*
|
||||
* ItemValue4
|
||||
* 変数項目4に入れる変数のIDを指定します。
|
||||
* デフォルト:4
|
||||
*
|
||||
* ItemValue1unit
|
||||
* 変数項目1の単位を指定します。
|
||||
* デフォルト:無し
|
||||
*
|
||||
* ItemValue2unit
|
||||
* 変数項目2の単位を指定します。
|
||||
* デフォルト:無し
|
||||
*
|
||||
* ItemValue3unit
|
||||
* 変数項目3の単位を指定します。
|
||||
* デフォルト:無し
|
||||
*
|
||||
* ItemValue4unit
|
||||
* 変数項目4の単位を指定します。
|
||||
* デフォルト:無し
|
||||
*
|
||||
* TitleFramelength1
|
||||
* 項目1のタイトル枠の横幅を0~274のあいだから指定します。
|
||||
* 文字数*20+10で文字の幅と同じ幅の枠を描画できます
|
||||
* 指定した枠幅より文字幅がはみ出る場合自動で文字幅が縮小されます。
|
||||
* デフォルト:110(5文字)
|
||||
*
|
||||
* TitleFramelength2
|
||||
* 項目2のタイトル枠の横幅(文字数*20+10)(0~274)
|
||||
* デフォルト:110
|
||||
*
|
||||
* TitleFramelength3
|
||||
* 項目3のタイトル枠の横幅(文字数*20+10)(0~274)
|
||||
* デフォルト:110
|
||||
*
|
||||
* TitleFramelength4
|
||||
* 項目4のタイトル枠の横幅(文字数*20+10)(0~274)
|
||||
* デフォルト:110
|
||||
*
|
||||
* CharacterPositionY
|
||||
* キャラクターグラフィックのy座標を指定します。
|
||||
* 下の方に表示したい場合は6、中央あたりなら12 上の方なら20が目安です。
|
||||
* デフォルト:6
|
||||
*
|
||||
* LevelPositionY
|
||||
* レベルのy座標を指定します。下の方なら72、上の方なら23が目安です。
|
||||
* レベルの表示はキャラクターグラフィックより手前に表示されます。
|
||||
* デフォルト:23
|
||||
*
|
||||
* LevelOnOff
|
||||
* レベルを表示するかしないかを指定(0=非表示、1=表示)
|
||||
* デフォルト:1
|
||||
*
|
||||
*
|
||||
* ■変数に文字列を代入する方法
|
||||
* 変数に文字列を代入するには
|
||||
* イベントコマンドの"タブ1"にある"ゲーム進行"内の"変数の操作"を実行し
|
||||
* 代入したい変数を選び、代入にチェックを入れ
|
||||
* スクリプトに書き込みます
|
||||
* このとき ' ←この記号ではじめと終わりを挟むのを忘れないでください。
|
||||
* ( ' ←この記号はキーボードが半角英数のときにshiftを押しながら7で打てます)
|
||||
*
|
||||
* ■BB ENTERTAINMENT BLOGにて画像付きで解説しています。
|
||||
* 記事:http://bb-entertainment-blog.blogspot.jp/2016/11/blog-post_27.html#more
|
||||
*
|
||||
* バージョン:
|
||||
* 1.0.2 2016/12/01 レベルの表示、非表示を切り替えるパラメータを追加
|
||||
* 1.0.1 2016/11/29 ヘルプを追記
|
||||
* 1.0.0 2016/11/27 初版
|
||||
*
|
||||
* 利用規約:
|
||||
* このプラグインは、MITライセンスのもとで公開されています。
|
||||
* Copyright (c) 2016 BB ENTERTAINMENT
|
||||
* Released under the MIT License.
|
||||
* http://opensource.org/licenses/mit-license.php
|
||||
*
|
||||
* コンタクト:
|
||||
* BB ENTERTAINMENT Twitter: https://twitter.com/BB_ENTER/
|
||||
* BB ENTERTAINMENT BLOG : http://bb-entertainment-blog.blogspot.jp/
|
||||
*/
|
||||
|
||||
|
||||
(function() {
|
||||
'use strict';
|
||||
//-----------------------------------------------------------------------------
|
||||
// プラグインパラメータ管理
|
||||
//-----------------------------------------------------------------------------
|
||||
var parameters = PluginManager.parameters('BB_CustomSaveWindow');
|
||||
var BBSWInFC = Number(parameters['InsideFrameColor']);
|
||||
var BBSWInFO = Number(parameters['InsideFrameOpacity']);
|
||||
var BBSWOutFC = Number(parameters['OutsideFrameColor']);
|
||||
var BBSWOutFO = Number(parameters['OutsideFrameOpacity']);
|
||||
var BBSWMaxItem = Number(parameters['MaxItem']);
|
||||
var BBSWItem0 = Number(parameters['Item0']);
|
||||
var BBSWItem0L = Number(parameters['Item0Length']);
|
||||
var BBSWItem1T = String(parameters['Item1title']);
|
||||
var BBSWItem1 = Number(parameters['Item1']);
|
||||
var BBSWItem2T = String(parameters['Item2title']);
|
||||
var BBSWItem2 = Number(parameters['Item2']);
|
||||
var BBSWItem3T = String(parameters['Item3title']);
|
||||
var BBSWItem3 = Number(parameters['Item3']);
|
||||
var BBSWItem4T = String(parameters['Item4title']);
|
||||
var BBSWItem4 = Number(parameters['Item4']);
|
||||
var BBSWItem5 = Number(parameters['Item5']);
|
||||
var BBSWV1 = Number(parameters['ItemValue1']);
|
||||
var BBSWV2 = Number(parameters['ItemValue2']);
|
||||
var BBSWV3 = Number(parameters['ItemValue3']);
|
||||
var BBSWV4 = Number(parameters['ItemValue4']);
|
||||
var BBSWV1u = String(parameters['ItemValue1unit']);
|
||||
var BBSWV2u = String(parameters['ItemValue2unit']);
|
||||
var BBSWV3u = String(parameters['ItemValue3unit']);
|
||||
var BBSWV4u = String(parameters['ItemValue4unit']);
|
||||
var BBSWTF1 = Number(parameters['TitleFramelength1']);
|
||||
var BBSWTF2 = Number(parameters['TitleFramelength2']);
|
||||
var BBSWTF3 = Number(parameters['TitleFramelength3']);
|
||||
var BBSWTF4 = Number(parameters['TitleFramelength4']);
|
||||
var BBSWCPY = Number(parameters['CharacterPositionY']);
|
||||
var BBSWLPY = Number(parameters['LevelPositionY']);
|
||||
var BBSWLOO = Number(parameters['LevelOnOff']);
|
||||
//-----------------------------------------------------------------------------
|
||||
// セーブデータに名前を定義
|
||||
//-----------------------------------------------------------------------------
|
||||
var _DataManager_makeSavefileInfo = DataManager.makeSavefileInfo;
|
||||
DataManager.makeSavefileInfo = function() {
|
||||
var info = {};
|
||||
info.globalId = this._globalId;
|
||||
info.title = $dataSystem.gameTitle;
|
||||
info.characters = $gameParty.charactersForSavefile();
|
||||
info.faces = $gameParty.facesForSavefile();
|
||||
info.playtime = $gameSystem.playtimeText();
|
||||
info.timestamp = Date.now();
|
||||
//add--------------------------------------------------------------------------
|
||||
info.mapname = $gameMap.displayName();
|
||||
info.gold = $gameParty._gold;
|
||||
info.savecount = $gameSystem._saveCount;
|
||||
info.value1 = $gameVariables.value(BBSWV1);
|
||||
info.value2 = $gameVariables.value(BBSWV2);
|
||||
info.value3 = $gameVariables.value(BBSWV3);
|
||||
info.value4 = $gameVariables.value(BBSWV4);
|
||||
if ($gameParty.size() == 1) {
|
||||
info.level1 = $gameParty.members()[0].level;}
|
||||
if ($gameParty.size() == 2) {
|
||||
info.level1 = $gameParty.members()[0].level;
|
||||
info.level2 = $gameParty.members()[1].level;}
|
||||
if ($gameParty.size() == 3) {
|
||||
info.level1 = $gameParty.members()[0].level;
|
||||
info.level2 = $gameParty.members()[1].level;
|
||||
info.level3 = $gameParty.members()[2].level;}
|
||||
if ($gameParty.size() >= 4) {
|
||||
info.level1 = $gameParty.members()[0].level;
|
||||
info.level2 = $gameParty.members()[1].level;
|
||||
info.level3 = $gameParty.members()[2].level;
|
||||
info.level4 = $gameParty.members()[3].level;}
|
||||
//-----------------------------------------------------------------------------
|
||||
return info;
|
||||
};
|
||||
|
||||
var _Window_SavefileList_prototype_drawItem = Window_SavefileList.prototype.drawItem;
|
||||
Window_SavefileList.prototype.drawItem = function(index) {
|
||||
var id = index + 1;
|
||||
var valid = DataManager.isThisGameFile(id);
|
||||
var info = DataManager.loadSavefileInfo(id);
|
||||
var rect = this.itemRectForText(index);
|
||||
//add--------------------------------------------------------------------------
|
||||
this.contents.fontSize = 20;
|
||||
this.contents.paintOpacity = BBSWInFO;
|
||||
this.contents.fillRect(rect.x - 5, rect.y + 2, rect.width + 10, 2, this.textColor(BBSWInFC));
|
||||
this.contents.fillRect(rect.x - 5, rect.y + 100, rect.width + 10, 2, this.textColor(BBSWInFC));
|
||||
this.contents.fillRect(rect.x - 5, rect.y + 4, 2, rect.height - 7, this.textColor(BBSWInFC));
|
||||
this.contents.fillRect(rect.x + 771, rect.y + 4, 2, rect.height - 7, this.textColor(BBSWInFC));
|
||||
|
||||
this.contents.fillRect(rect.x - 3, rect.y + 4, rect.width + 6, 28, this.textColor(BBSWInFC));
|
||||
this.contents.paintOpacity = BBSWOutFO;
|
||||
if (BBSWMaxItem >= 0) {
|
||||
}
|
||||
if (BBSWMaxItem >= 1) {
|
||||
this.contents.fillRect(rect.x + 490, rect.y + 70, BBSWTF1, 26, this.textColor(BBSWOutFC));
|
||||
|
||||
this.contents.fillRect(rect.x + 490, rect.y + 68, 276, 2, this.textColor(BBSWOutFC));
|
||||
this.contents.fillRect(rect.x + 490, rect.y + 96, 276, 2, this.textColor(BBSWOutFC));
|
||||
this.contents.fillRect(rect.x + 764, rect.y + 70, 2, 26, this.textColor(BBSWOutFC));
|
||||
|
||||
} if (BBSWMaxItem >= 2) {
|
||||
this.contents.fillRect(rect.x + 490, rect.y + 37, BBSWTF2, 26, this.textColor(BBSWOutFC));
|
||||
|
||||
this.contents.fillRect(rect.x + 490, rect.y + 35, 276, 2, this.textColor(BBSWOutFC));
|
||||
this.contents.fillRect(rect.x + 490, rect.y + 63, 276, 2, this.textColor(BBSWOutFC));
|
||||
this.contents.fillRect(rect.x + 764, rect.y + 37, 2, 26, this.textColor(BBSWOutFC));
|
||||
|
||||
} if (BBSWMaxItem >= 3) {
|
||||
this.contents.fillRect(rect.x + 210, rect.y + 70, BBSWTF3, 26, this.textColor(BBSWOutFC));
|
||||
|
||||
this.contents.fillRect(rect.x + 210, rect.y + 68, 276, 2, this.textColor(BBSWOutFC));
|
||||
this.contents.fillRect(rect.x + 210, rect.y + 96, 276, 2, this.textColor(BBSWOutFC));
|
||||
this.contents.fillRect(rect.x + 484, rect.y + 70, 2, 26, this.textColor(BBSWOutFC));
|
||||
} if (BBSWMaxItem >= 4) {
|
||||
this.contents.fillRect(rect.x + 210, rect.y + 37, BBSWTF4, 26, this.textColor(BBSWOutFC));
|
||||
|
||||
this.contents.fillRect(rect.x + 210, rect.y + 35, 276, 2, this.textColor(BBSWOutFC));
|
||||
this.contents.fillRect(rect.x + 210, rect.y + 63, 276, 2, this.textColor(BBSWOutFC));
|
||||
this.contents.fillRect(rect.x + 484, rect.y + 37, 2, 26, this.textColor(BBSWOutFC));
|
||||
}
|
||||
this.contents.paintOpacity = 255;
|
||||
//-----------------------------------------------------------------------------
|
||||
this.resetTextColor();
|
||||
if (this._mode === 'load') {
|
||||
this.changePaintOpacity(valid);
|
||||
}
|
||||
|
||||
this.drawFileId(id, rect.x, rect.y);
|
||||
if (info) {
|
||||
this.changePaintOpacity(valid);
|
||||
this.drawContents(info, rect, valid);
|
||||
this.changePaintOpacity(true);
|
||||
}
|
||||
};
|
||||
var _Window_SavefileList_prototype_drawContents = Window_SavefileList.prototype.drawContents;
|
||||
Window_SavefileList.prototype.drawContents = function(info, rect, valid) {
|
||||
var bottom = rect.y + rect.height;
|
||||
if (rect.width >= 420) {
|
||||
//項目0------------------------------------------------------------------------
|
||||
if (BBSWItem0 == 1) {
|
||||
this.drawText(info.title, rect.x + 142, rect.y, BBSWItem0L);
|
||||
} else if (BBSWItem0 == 2) {
|
||||
this.drawText(info.playtime, rect.x + 142, rect.y, BBSWItem0L);
|
||||
} else if (BBSWItem0 == 3) {
|
||||
this.drawText(info.mapname, rect.x + 142, rect.y, BBSWItem0L);
|
||||
} else if (BBSWItem0 == 4) {
|
||||
this.drawText(info.gold + TextManager.currencyUnit, rect.x + 142, rect.y, BBSWItem0L);
|
||||
} else if (BBSWItem0 == 5) {
|
||||
this.drawText(info.savecount, rect.x + 142, rect.y, 312);
|
||||
} else if (BBSWItem0 == 6) {
|
||||
this.drawText(info.value1 + BBSWV1u, rect.x + 142, rect.y, BBSWItem0L);
|
||||
} else if (BBSWItem0 == 7) {
|
||||
this.drawText(info.value2 + BBSWV2u, rect.x + 142, rect.y, BBSWItem0L);
|
||||
} else if (BBSWItem0 == 8) {
|
||||
this.drawText(info.value3 + BBSWV3u, rect.x + 142, rect.y, BBSWItem0L);
|
||||
} else if (BBSWItem0 == 9) {
|
||||
this.drawText(info.value4 + BBSWV4u, rect.x + 142, rect.y, BBSWItem0L);
|
||||
} else {
|
||||
}
|
||||
//-----------------------------------------------------------------------------
|
||||
if (valid) {
|
||||
//this.drawPartyCharacters(info, rect.x + 25, bottom - BBSWCPY);//-6 -12 -20
|
||||
//レベル表示-------------------------------------------------------------------
|
||||
if (BBSWLOO == 1) {
|
||||
this.contents.fontSize = 16;
|
||||
this.drawText(TextManager.levelA + " " + info.level1, rect.x + 5, rect.y + BBSWLPY, 40);//72 23
|
||||
if (info.characters.length == 2) {
|
||||
this.drawText(TextManager.levelA + " " + info.level2, rect.x + 5 + 48, rect.y + BBSWLPY, 40);}
|
||||
if (info.characters.length == 3) {
|
||||
this.drawText(TextManager.levelA + " " + info.level2, rect.x + 5 + 48, rect.y + BBSWLPY, 40);
|
||||
this.drawText(TextManager.levelA + " " + info.level3, rect.x + 5 + 48 + 48, rect.y + BBSWLPY, 40);}
|
||||
if (info.characters.length >= 4) {
|
||||
this.drawText(TextManager.levelA + " " + info.level2, rect.x + 5 + 48, rect.y + BBSWLPY, 40);
|
||||
this.drawText(TextManager.levelA + " " + info.level3, rect.x + 5 + 48 + 48, rect.y + BBSWLPY, 40);
|
||||
this.drawText(TextManager.levelA + " " + info.level4, rect.x + 5 + 48 + 48 + 48, rect.y + BBSWLPY, 40);}
|
||||
|
||||
this.contents.fontSize = 20;
|
||||
}
|
||||
//-----------------------------------------------------------------------------
|
||||
}
|
||||
}
|
||||
var lineHeight = this.lineHeight();
|
||||
var y2 = bottom - lineHeight;
|
||||
if (y2 >= lineHeight) {
|
||||
//項目1 右下-------------------------------------------------------------------
|
||||
this.drawText(BBSWItem1T, rect.x + 495, y2 - 2, BBSWTF1 - 10);
|
||||
if (BBSWItem1 == 1) {
|
||||
this.drawText(info.title, rect.x + 495 + BBSWTF1, y2 - 2, 266 - BBSWTF1, 'right');//rect.x - 7, y2 - 2, rect.width
|
||||
} else if (BBSWItem1 == 2) {
|
||||
this.drawText(info.playtime, rect.x + 495 + BBSWTF1, y2 - 2, 266 - BBSWTF1, 'right');
|
||||
} else if (BBSWItem1 == 3) {
|
||||
this.drawText(info.mapname, rect.x + 495 + BBSWTF1, y2 - 2, 266 - BBSWTF1, 'right');
|
||||
} else if (BBSWItem1 == 4) {
|
||||
this.drawText(info.gold + TextManager.currencyUnit, rect.x + 495 + BBSWTF1, y2 - 2, 266 - BBSWTF1, 'right');
|
||||
} else if (BBSWItem1 == 5) {
|
||||
this.drawText(info.savecount, rect.x + 495 + BBSWTF1, y2 - 2, 266 - BBSWTF1, 'right');
|
||||
} else if (BBSWItem1 == 6) {
|
||||
this.drawText(info.value1 + BBSWV1u, rect.x + 495 + BBSWTF1, y2 - 2, 266 - BBSWTF1, 'right');
|
||||
} else if (BBSWItem1 == 7) {
|
||||
this.drawText(info.value2 + BBSWV2u, rect.x + 495 + BBSWTF1, y2 - 2, 266 - BBSWTF1, 'right');
|
||||
} else if (BBSWItem1 == 8) {
|
||||
this.drawText(info.value3 + BBSWV3u, rect.x + 495 + BBSWTF1, y2 - 2, 266 - BBSWTF1, 'right');
|
||||
} else if (BBSWItem1 == 9) {
|
||||
this.drawText(info.value4 + BBSWV4u, rect.x + 495 + BBSWTF1, y2 - 2, 266 - BBSWTF1, 'right');
|
||||
} else {
|
||||
}
|
||||
//-----------------------------------------------------------------------------
|
||||
//項目2 右上-------------------------------------------------------------------
|
||||
this.drawText(BBSWItem2T, rect.x + 495, y2 - 34, BBSWTF2 - 10);
|
||||
if (BBSWItem2 == 1) {
|
||||
this.drawText(info.title, rect.x + 495 + BBSWTF2, y2 - 34, 266 - BBSWTF2, 'right');//rect.x - 7, y2 - 34, rect.width
|
||||
} else if (BBSWItem2 == 2) {
|
||||
this.drawText(info.playtime, rect.x + 495 + BBSWTF2, y2 - 34, 266 - BBSWTF2, 'right');
|
||||
} else if (BBSWItem2 == 3) {
|
||||
this.drawText(info.mapname, rect.x + 495 + BBSWTF2, y2 - 34, 266 - BBSWTF2, 'right');
|
||||
} else if (BBSWItem2 == 4) {
|
||||
this.drawText(info.gold + TextManager.currencyUnit, rect.x + 495 + BBSWTF2, y2 - 34, 266 - BBSWTF2, 'right');
|
||||
} else if (BBSWItem2 == 5) {
|
||||
this.drawText(info.savecount, rect.x + 495 + BBSWTF2, y2 - 34, 266 - BBSWTF2, 'right');
|
||||
} else if (BBSWItem2 == 6) {
|
||||
this.drawText(info.value1 + BBSWV1u, rect.x + 495 + BBSWTF2, y2 - 34, 266 - BBSWTF2, 'right');
|
||||
} else if (BBSWItem2 == 7) {
|
||||
this.drawText(info.value2 + BBSWV2u, rect.x + 495 + BBSWTF2, y2 - 34, 266 - BBSWTF2, 'right');
|
||||
} else if (BBSWItem2 == 8) {
|
||||
this.drawText(info.value3 + BBSWV3u, rect.x + 495 + BBSWTF2, y2 - 34, 266 - BBSWTF2, 'right');
|
||||
} else if (BBSWItem2 == 9) {
|
||||
this.drawText(info.value4 + BBSWV4u, rect.x + 495 + BBSWTF2, y2 - 34, 266 - BBSWTF2, 'right');
|
||||
} else {
|
||||
}
|
||||
//-----------------------------------------------------------------------------
|
||||
//項目3 左下-------------------------------------------------------------------
|
||||
this.drawText(BBSWItem3T, rect.x + 215, y2 - 2, BBSWTF3 - 10);
|
||||
if (BBSWItem3 == 1) {
|
||||
this.drawText(info.title, rect.x + 215 + BBSWTF3, y2 - 2, 266 - BBSWTF3, 'right');//rect.x - 287, y2 - 2, rect.width
|
||||
} else if (BBSWItem3 == 2) {
|
||||
this.drawText(info.playtime, rect.x + 215 + BBSWTF3, y2 - 2, 266 - BBSWTF3, 'right');
|
||||
} else if (BBSWItem3 == 3) {
|
||||
this.drawText(info.mapname, rect.x + 215 + BBSWTF3, y2 - 2, 266 - BBSWTF3, 'right');
|
||||
} else if (BBSWItem3 == 4) {
|
||||
this.drawText(info.gold + TextManager.currencyUnit, rect.x + 215 + BBSWTF3, y2 - 2, 266 - BBSWTF3, 'right');
|
||||
} else if (BBSWItem3 == 5) {
|
||||
this.drawText(info.savecount, rect.x + 215 + BBSWTF3, y2 - 2, 266 - BBSWTF3, 'right');
|
||||
} else if (BBSWItem3 == 6) {
|
||||
this.drawText(info.value1 + BBSWV1u, rect.x + 215 + BBSWTF3, y2 - 2, 266 - BBSWTF3, 'right');
|
||||
} else if (BBSWItem3 == 7) {
|
||||
this.drawText(info.value2 + BBSWV2u, rect.x + 215 + BBSWTF3, y2 - 2, 266 - BBSWTF3, 'right');
|
||||
} else if (BBSWItem3 == 8) {
|
||||
this.drawText(info.value3 + BBSWV3u, rect.x + 215 + BBSWTF3, y2 - 2, 266 - BBSWTF3, 'right');
|
||||
} else if (BBSWItem3 == 9) {
|
||||
this.drawText(info.value4 + BBSWV4u, rect.x + 215 + BBSWTF3, y2 - 2, 266 - BBSWTF3, 'right');
|
||||
} else {
|
||||
}
|
||||
//-----------------------------------------------------------------------------
|
||||
//項目4 左上-------------------------------------------------------------------
|
||||
this.drawText(BBSWItem4T, rect.x + 215, y2 - 34, BBSWTF4 - 10);
|
||||
if (BBSWItem4 == 1) {
|
||||
this.drawText(info.title, rect.x + 215 + BBSWTF4, y2 - 34, 266 - BBSWTF4, 'right');//rect.x - 287, y2 - 34, rect.width
|
||||
} else if (BBSWItem4 == 2) {
|
||||
this.drawText(info.playtime, rect.x + 215 + BBSWTF4, y2 - 34, 266 - BBSWTF4, 'right');
|
||||
} else if (BBSWItem4 == 3) {
|
||||
this.drawText(info.mapname, rect.x + 215 + BBSWTF4, y2 - 34, 266 - BBSWTF4, 'right');
|
||||
} else if (BBSWItem4 == 4) {
|
||||
this.drawText(info.gold + TextManager.currencyUnit, rect.x + 215 + BBSWTF4, y2 - 34, 266 - BBSWTF4, 'right');
|
||||
} else if (BBSWItem4 == 5) {
|
||||
this.drawText(info.savecount, rect.x + 215 + BBSWTF4, y2 - 34, 266 - BBSWTF4, 'right');
|
||||
} else if (BBSWItem4 == 6) {
|
||||
this.drawText(info.value1 + BBSWV1u, rect.x + 215 + BBSWTF4, y2 - 34, 266 - BBSWTF4, 'right');
|
||||
} else if (BBSWItem4 == 7) {
|
||||
this.drawText(info.value2 + BBSWV2u, rect.x + 215 + BBSWTF4, y2 - 34, 266 - BBSWTF4, 'right');
|
||||
} else if (BBSWItem4 == 8) {
|
||||
this.drawText(info.value3 + BBSWV3u, rect.x + 215 + BBSWTF4, y2 - 34, 266 - BBSWTF4, 'right');
|
||||
} else if (BBSWItem4 == 9) {
|
||||
this.drawText(info.value4 + BBSWV4u, rect.x + 215 + BBSWTF4, y2 - 34, 266 - BBSWTF4, 'right');
|
||||
} else {
|
||||
}
|
||||
//-----------------------------------------------------------------------------
|
||||
//項目5 上部-------------------------------------------------------------------
|
||||
var L5 = 609 - BBSWItem0L;
|
||||
if (BBSWItem5 == 1) {
|
||||
this.drawText(info.title, rect.x + 160 + BBSWItem0L, rect.y, L5, 'right');//rect.x + 455, rect.y, 312,
|
||||
} else if (BBSWItem5 == 2) {
|
||||
this.drawText(info.playtime, rect.x + 160 + BBSWItem0L, rect.y, L5, 'right');
|
||||
} else if (BBSWItem5 == 3) {
|
||||
this.drawText(info.mapname, rect.x + 160 + BBSWItem0L, rect.y, L5, 'right');
|
||||
} else if (BBSWItem5 == 4) {
|
||||
this.drawText(info.gold + TextManager.currencyUnit, rect.x + 160 + BBSWItem0L, rect.y, L5, 'right');
|
||||
} else if (BBSWItem5 == 5) {
|
||||
this.drawText(info.savecount, rect.x + 160 + BBSWItem0L, rect.y, L5, 'right');
|
||||
} else if (BBSWItem5 == 6) {
|
||||
this.drawText(info.value1 + BBSWV1u, rect.x + 160 + BBSWItem0L, rect.y, L5, 'right');
|
||||
} else if (BBSWItem5 == 7) {
|
||||
this.drawText(info.value2 + BBSWV2u, rect.x + 160 + BBSWItem0L, rect.y, L5, 'right');
|
||||
} else if (BBSWItem5 == 8) {
|
||||
this.drawText(info.value3 + BBSWV3u, rect.x + 160 + BBSWItem0L, rect.y, L5, 'right');
|
||||
} else if (BBSWItem5 == 9) {
|
||||
this.drawText(info.value4 + BBSWV4u, rect.x + 160 + BBSWItem0L, rect.y, L5, 'right');
|
||||
} else {
|
||||
}
|
||||
//-----------------------------------------------------------------------------
|
||||
}
|
||||
};
|
||||
|
||||
var _Window_SavefileList_prototype_drawFileId = Window_SavefileList.prototype.drawFileId;
|
||||
Window_SavefileList.prototype.drawFileId = function(id, x, y) {
|
||||
this.drawText(TextManager.file + ' ' + id, x, y, 120);
|
||||
};
|
||||
|
||||
})();
|
||||
39
www/js/plugins/BB_StatusMinus999.js
Normal file
39
www/js/plugins/BB_StatusMinus999.js
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
//=============================================================================
|
||||
// BB_StatusMinus999.jp
|
||||
// Copyright (c) 2016 BB ENTERTAINMENT
|
||||
//=============================================================================
|
||||
|
||||
/*:
|
||||
* @plugindesc HPとMP以外のステータスの下限を-999にします。
|
||||
* @author ビービー
|
||||
*
|
||||
* @help プラグインの説明
|
||||
* HPとMP以外のステータスの下限を-999にします。
|
||||
* HPの下限は1、MPの下限は0です。
|
||||
*
|
||||
* 利用規約:
|
||||
* このプラグインは、MITライセンスのもとで公開されています。
|
||||
* Copyright (c) 2016 BB ENTERTAINMENT
|
||||
* Released under the MIT License.
|
||||
* http://opensource.org/licenses/mit-license.php
|
||||
*
|
||||
* コンタクト:
|
||||
* BB ENTERTAINMENT Twitter: https://twitter.com/BB_ENTER/
|
||||
* BB ENTERTAINMENT BLOG : http://bb-entertainment-blog.blogspot.jp/
|
||||
*/
|
||||
|
||||
|
||||
(function() {
|
||||
|
||||
var _Game_BattlerBase_prototype_paramMin = Game_BattlerBase.prototype.paramMin;
|
||||
Game_BattlerBase.prototype.paramMin = function(paramId) {
|
||||
if (paramId === 0) {
|
||||
return 1; // MHP
|
||||
} else if (paramId === 1) {
|
||||
return 0; // MMP
|
||||
} else {
|
||||
return -999;
|
||||
}
|
||||
};
|
||||
|
||||
})();
|
||||
230
www/js/plugins/BackUpDatabase.js
Normal file
230
www/js/plugins/BackUpDatabase.js
Normal file
|
|
@ -0,0 +1,230 @@
|
|||
//=============================================================================
|
||||
// BackUpDatabase.js
|
||||
// ----------------------------------------------------------------------------
|
||||
// (C)2015-2018 Triacontane
|
||||
// This software is released under the MIT License.
|
||||
// http://opensource.org/licenses/mit-license.php
|
||||
// ----------------------------------------------------------------------------
|
||||
// Version
|
||||
// 1.1.1 2018/05/13 1.1.0でエラーになる問題を修正
|
||||
// 1.1.0 2018/05/13 バックアップフォルダを時間単位で作成できる機能を追加
|
||||
// 1.0.0 2018/04/21 初版
|
||||
// ----------------------------------------------------------------------------
|
||||
// [Blog] : https://triacontane.blogspot.jp/
|
||||
// [Twitter]: https://twitter.com/triacontane/
|
||||
// [GitHub] : https://github.com/triacontane/
|
||||
//=============================================================================
|
||||
|
||||
/*:
|
||||
* @plugindesc BackUpDatabasePlugin
|
||||
* @author triacontane
|
||||
*
|
||||
* @param backUpPath
|
||||
* @desc ファイルの出力パスです。相対パス、絶対パスが利用できます。
|
||||
* @default /backup
|
||||
*
|
||||
* @param includeSave
|
||||
* @desc セーブデータが含まれているフォルダもバックアップの対象にします。
|
||||
* @default false
|
||||
* @type boolean
|
||||
*
|
||||
* @param timeUnit
|
||||
* @desc 有効にすると時間単位でフォルダを作成します。無効にすると日付単位でフォルダを作成します。
|
||||
* @default false
|
||||
* @type boolean
|
||||
*
|
||||
* @help BackUpDatabase.js
|
||||
*
|
||||
* ゲームを起動するたびにデータフォルダ一式を所定の場所にコピーします。
|
||||
* フォルダは日付ごとに蓄積され、上限はありません。
|
||||
* このプラグインは通常のテストプレー時のみ効果があります。
|
||||
* 通常プレー、戦闘テスト、イベントテスト、ブラウザプレーでは何もしません。
|
||||
*
|
||||
* なお、プラグインの動作テストは十分に行っていますが、
|
||||
* 当プラグインは問題発生時のプロジェクトの復元を常に保証するものではありません。
|
||||
*
|
||||
* This plugin is released under the MIT License.
|
||||
*/
|
||||
/*:ja
|
||||
* @plugindesc データバックアッププラグイン
|
||||
* @author トリアコンタン
|
||||
*
|
||||
* @param backUpPath
|
||||
* @text バックアップパス
|
||||
* @desc ファイルの出力パスです。相対パス、絶対パスが利用できます。
|
||||
* @default /backup
|
||||
*
|
||||
* @param includeSave
|
||||
* @text セーブデータも含む
|
||||
* @desc セーブデータが含まれているフォルダもバックアップの対象にします。
|
||||
* @default false
|
||||
* @type boolean
|
||||
*
|
||||
* @param timeUnit
|
||||
* @text 時間単位でフォルダ作成
|
||||
* @desc 有効にすると時間単位でフォルダを作成します。無効にすると日付単位でフォルダを作成します。
|
||||
* @default false
|
||||
* @type boolean
|
||||
*
|
||||
* @help BackUpDatabase.js
|
||||
*
|
||||
* ゲームを起動するたびにデータフォルダ一式を所定の場所にコピーします。
|
||||
* フォルダは日付ごとに蓄積され、上限はありません。
|
||||
* このプラグインは通常のテストプレー時のみ効果があります。
|
||||
* 通常プレー、戦闘テスト、イベントテスト、ブラウザプレーでは何もしません。
|
||||
*
|
||||
* なお、プラグインの動作テストは十分に行っていますが、
|
||||
* 当プラグインは問題発生時のプロジェクトの復元を常に保証するものではありません。
|
||||
*
|
||||
* このプラグインにはプラグインコマンドはありません。
|
||||
*
|
||||
* 利用規約:
|
||||
* 作者に無断で改変、再配布が可能で、利用形態(商用、18禁利用等)
|
||||
* についても制限はありません。
|
||||
* このプラグインはもうあなたのものです。
|
||||
*/
|
||||
|
||||
(function() {
|
||||
'use strict';
|
||||
|
||||
if (!Utils.isNwjs()) {
|
||||
return;
|
||||
}
|
||||
|
||||
/**
|
||||
* Create plugin parameter. param[paramName] ex. param.commandPrefix
|
||||
* @param pluginName plugin name(EncounterSwitchConditions)
|
||||
* @returns {Object} Created parameter
|
||||
*/
|
||||
var createPluginParameter = function(pluginName) {
|
||||
var paramReplacer = function(key, value) {
|
||||
if (value === 'null') {
|
||||
return value;
|
||||
}
|
||||
if (value[0] === '"' && value[value.length - 1] === '"') {
|
||||
return value;
|
||||
}
|
||||
try {
|
||||
return JSON.parse(value);
|
||||
} catch (e) {
|
||||
return value;
|
||||
}
|
||||
};
|
||||
var parameter = JSON.parse(JSON.stringify(PluginManager.parameters(pluginName), paramReplacer));
|
||||
PluginManager.setParameters(pluginName, parameter);
|
||||
return parameter;
|
||||
};
|
||||
|
||||
var param = createPluginParameter('BackUpDatabase');
|
||||
var node = {
|
||||
fs : require('fs'),
|
||||
path: require('path')
|
||||
};
|
||||
|
||||
//=============================================================================
|
||||
// SceneManager
|
||||
// バックアップ処理を呼び出します。
|
||||
//=============================================================================
|
||||
var _SceneManager_initialize = SceneManager.initialize;
|
||||
SceneManager.initialize = function() {
|
||||
_SceneManager_initialize.apply(this, arguments);
|
||||
DataManager.backupAllData();
|
||||
};
|
||||
|
||||
//=============================================================================
|
||||
// DataManager
|
||||
// バックアップを実行します。
|
||||
//=============================================================================
|
||||
DataManager.backupAllData = function() {
|
||||
if (!Utils.isOptionValid('test') || this.isBattleTest() || this.isEventTest()) {
|
||||
return;
|
||||
}
|
||||
this.backupDataBase();
|
||||
this.backupRpgProject();
|
||||
if (param.includeSave) {
|
||||
this.backupSaveData();
|
||||
}
|
||||
};
|
||||
|
||||
DataManager.backupDataBase = function() {
|
||||
var targetPath = StorageManager.makeBackupDirectory('data');
|
||||
var originalPath = StorageManager.localDataDirectoryPath();
|
||||
StorageManager.copyAllFiles(originalPath, targetPath);
|
||||
};
|
||||
|
||||
DataManager.backupRpgProject = function() {
|
||||
var targetPath = StorageManager.getBackupRoot();
|
||||
var originalPath = StorageManager.getProjectRoot() + '/';
|
||||
StorageManager.copyFile(originalPath, targetPath, 'Game.rpgproject');
|
||||
};
|
||||
|
||||
DataManager.backupSaveData = function() {
|
||||
var targetPath = StorageManager.makeBackupDirectory('save');
|
||||
var originalPath = StorageManager.localFileDirectoryPath();
|
||||
StorageManager.copyAllFiles(originalPath, targetPath);
|
||||
};
|
||||
|
||||
//=============================================================================
|
||||
// StorageManager
|
||||
// バックアップに必要なファイルアクセス処理を提供します。
|
||||
//=============================================================================
|
||||
StorageManager.copyAllFiles = function(originalPath, targetPath) {
|
||||
var copyFile = this.copyFile.bind(this, originalPath, targetPath);
|
||||
node.fs.readdir(originalPath, function(error, list) {
|
||||
if (error || !list) {
|
||||
console.warn(error);
|
||||
return;
|
||||
}
|
||||
list.forEach(function(fileName) {
|
||||
copyFile(fileName);
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
StorageManager.copyFile = function(originalPath, targetPath, fileName) {
|
||||
node.fs.createReadStream(originalPath + fileName).pipe(node.fs.createWriteStream(targetPath + fileName));
|
||||
};
|
||||
|
||||
StorageManager.getProjectRoot = function() {
|
||||
return node.path.dirname(process.mainModule.filename);
|
||||
};
|
||||
|
||||
StorageManager.localDataDirectoryPath = function() {
|
||||
return node.path.join(this.getProjectRoot(), 'data/');
|
||||
};
|
||||
|
||||
StorageManager.getBackupRoot = function() {
|
||||
var filePath = param.backUpPath;
|
||||
if (!filePath.match(/^[A-Z]:/)) {
|
||||
filePath = node.path.join(this.getProjectRoot(), filePath);
|
||||
}
|
||||
return filePath.match(/\/$/) ? filePath : filePath + '/';
|
||||
};
|
||||
|
||||
StorageManager.getBackupPath = function(prefix) {
|
||||
var date = new Date();
|
||||
return `${prefix}_${date.getFullYear()}-${(date.getMonth() + 1).padZero(2)}-${date.getDate().padZero(2)}${this.getBackupTimePath()}/`;
|
||||
};
|
||||
|
||||
StorageManager.getBackupTimePath = function() {
|
||||
if (!param.timeUnit) {
|
||||
return '';
|
||||
}
|
||||
var date = new Date();
|
||||
return `_${date.getHours().padZero(2)}${date.getMinutes().padZero(2)}${date.getSeconds().padZero(2)}`;
|
||||
};
|
||||
|
||||
StorageManager.makeBackupDirectory = function(type) {
|
||||
var filePath = this.getBackupRoot();
|
||||
this.makeDirectoryIfNeed(filePath);
|
||||
filePath += this.getBackupPath(type);
|
||||
this.makeDirectoryIfNeed(filePath);
|
||||
return filePath;
|
||||
};
|
||||
|
||||
StorageManager.makeDirectoryIfNeed = function(dirPath) {
|
||||
if (!node.fs.existsSync(dirPath)) {
|
||||
node.fs.mkdirSync(dirPath);
|
||||
}
|
||||
};
|
||||
})();
|
||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue