Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Y
ygopro2
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Locked Files
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Security & Compliance
Security & Compliance
Dependency List
License Compliance
Packages
Packages
List
Container Registry
Analytics
Analytics
CI / CD
Code Review
Insights
Issues
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Git
ygopro2
Commits
68b5410a
Commit
68b5410a
authored
Mar 13, 2019
by
Unicorn369
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Update
parent
a3791faa
Changes
4
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
376 additions
and
335 deletions
+376
-335
Assets/SibylSystem/Menu/Menu.cs
Assets/SibylSystem/Menu/Menu.cs
+7
-5
Assets/SibylSystem/Program.cs
Assets/SibylSystem/Program.cs
+1
-0
Assets/SibylSystem/ResourceManagers/GameTextureManager.cs
Assets/SibylSystem/ResourceManagers/GameTextureManager.cs
+319
-316
Assets/SibylSystem/ResourceManagers/HttpDldFile.cs
Assets/SibylSystem/ResourceManagers/HttpDldFile.cs
+49
-14
No files found.
Assets/SibylSystem/Menu/Menu.cs
View file @
68b5410a
...
...
@@ -141,14 +141,16 @@ public class Menu : WindowServantSP
void
onClickDownload
()
{
#if UNITY_EDITOR || UNITY_STANDALONE_WIN //编译器、Windows
Application
.
OpenURL
(
"https://github.com/Unicorn369/pro2_android_closeup/releases/
download/1.0/closeup_version1.0.zip
"
);
Application
.
OpenURL
(
"https://github.com/Unicorn369/pro2_android_closeup/releases/
tag/1.0
"
);
#elif UNITY_ANDROID //Android
AndroidJavaObject
jo
=
new
AndroidJavaObject
(
"cn.unicorn369.library.API"
);
if
(!
File
.
Exists
(
"updates/closeup_version1.0.txt"
))
{
//用于检查更新
if
(
File
.
Exists
(
"closeup_version1.0.zip"
))
{
//如果有则直接解压
jo
.
Call
(
"doExtractZipFile"
,
"closeup_version1.0.zip"
,
Program
.
ANDROID_GAME_PATH
);
if
(!
File
.
Exists
(
"updates/closeup_version1.1.txt"
))
{
//用于检查更新
if
(
File
.
Exists
(
"closeup_version1.1.zip"
))
{
//如果有则直接解压
jo
.
Call
(
"doExtractZipFile"
,
"closeup_version1.1.zip"
,
Program
.
ANDROID_GAME_PATH
);
}
else
if
(
File
.
Exists
(
"updates/closeup_version1.0.txt"
)){
//如果有则下载更新包
jo
.
Call
(
"doDownloadZipFile"
,
"https://github.com/Unicorn369/pro2_android_closeup/releases/download/1.0/up_closeup_version1.1.zip"
);
}
else
{
//否则下载并解压,锁定目录:/ygocore
jo
.
Call
(
"doDownloadZipFile"
,
"https://github.com/Unicorn369/pro2_android_closeup/releases/download/1.0/closeup_version1.
0
.zip"
);
jo
.
Call
(
"doDownloadZipFile"
,
"https://github.com/Unicorn369/pro2_android_closeup/releases/download/1.0/closeup_version1.
1
.zip"
);
}
}
else
{
jo
.
Call
(
"showToast"
,
"已下载,无需再次下载!"
);
...
...
Assets/SibylSystem/Program.cs
View file @
68b5410a
...
...
@@ -379,6 +379,7 @@ public class Program : MonoBehaviour
File
.
Create
(
"updates/image_version1.1.txt"
);
}
else
{
jo
.
Call
(
"showToast"
,
"没有发现卡图包,是否未安装YGOMobile"
);
Application
.
OpenURL
(
"https://www.taptap.com/app/37972"
);
}
}
#endif
...
...
Assets/SibylSystem/ResourceManagers/GameTextureManager.cs
View file @
68b5410a
...
...
@@ -25,6 +25,7 @@ public class GameTextureManager
static
HttpDldFile
df
=
new
HttpDldFile
();
private
static
readonly
Semaphore
_sem
=
new
Semaphore
(
30
,
30
);
public
class
BitmapHelper
{
public
System
.
Drawing
.
Color
[,]
colors
=
null
;
...
...
@@ -207,12 +208,12 @@ public class GameTextureManager
while
(
waitLoadStack
.
Count
>
0
)
{
thu
++;
if
(
thu
==
10
)
if
(
thu
==
10
)
{
Thread
.
Sleep
(
50
);
thu
=
0
;
}
if
(
bLock
==
false
)
if
(
bLock
==
false
)
{
PictureResource
pic
;
...
...
@@ -227,36 +228,18 @@ public class GameTextureManager
}
if
(
pic
.
type
==
GameTextureType
.
card_feature
)
{
try
{
ProcessingCardFeature
(
pic
);
}
catch
(
Exception
e
)
{
Debug
.
Log
(
"e 1"
+
e
.
ToString
());
}
_sem
.
WaitOne
();
new
Thread
(()
=>
ProcessingCardFeature
(
pic
)).
Start
();
}
if
(
pic
.
type
==
GameTextureType
.
card_picture
)
{
try
{
ProcessingCardPicture
(
pic
);
}
catch
(
Exception
e
)
{
Debug
.
Log
(
"e 2"
+
e
.
ToString
());
}
_sem
.
WaitOne
();
new
Thread
(()
=>
ProcessingCardPicture
(
pic
)).
Start
();
}
if
(
pic
.
type
==
GameTextureType
.
card_verticle_drawing
)
{
try
{
ProcessingVerticleDrawing
(
pic
);
}
catch
(
Exception
e
)
{
Debug
.
Log
(
"e 3"
+
e
.
ToString
());
}
_sem
.
WaitOne
();
new
Thread
(()
=>
ProcessingVerticleDrawing
(
pic
)).
Start
();
}
}
}
...
...
@@ -269,11 +252,13 @@ public class GameTextureManager
}
private
static
void
ProcessingCardFeature
(
PictureResource
pic
)
{
try
{
if
(
File
.
Exists
(
"picture/closeup/"
+
pic
.
code
.
ToString
()
+
".png"
))
{
string
path
=
"picture/closeup/"
+
pic
.
code
.
ToString
()
+
".png"
;
#
if
UNITY_EDITOR
||
UNITY_STANDALONE_WIN
//编译器、Windows
#if UNITY_EDITOR || UNITY_STANDALONE_WIN //编译器、Windows
BitmapHelper
bitmap
=
new
BitmapHelper
(
path
);
int
left
;
int
right
;
...
...
@@ -308,7 +293,7 @@ public class GameTextureManager
* 以上处理其他平台无法正常使用
* 暂时只能直接贴图,以后再处理
*/
#
elif
UNITY_ANDROID
||
UNITY_IPHONE
//Android、iPhone
#elif UNITY_ANDROID || UNITY_IPHONE //Android、iPhone
byte
[]
data
;
using
(
FileStream
file
=
new
FileStream
(
path
,
FileMode
.
Open
,
FileAccess
.
Read
))
{
...
...
@@ -317,7 +302,7 @@ public class GameTextureManager
file
.
Read
(
data
,
0
,
(
int
)
file
.
Length
);
}
pic
.
data
=
data
;
#
endif
#endif
if
(!
loadedList
.
ContainsKey
(
hashPic
(
pic
.
code
,
pic
.
type
)))
{
...
...
@@ -402,6 +387,15 @@ public class GameTextureManager
}
}
}
catch
(
Exception
e
)
{
Debug
.
Log
(
"e 1"
+
e
.
ToString
());
}
finally
{
_sem
.
Release
();
}
}
private
static
void
caculateK
(
PictureResource
pic
)
{
...
...
@@ -439,7 +433,7 @@ public class GameTextureManager
int
width
=
pic
.
hashed_data
.
GetLength
(
0
);
int
height
=
pic
.
hashed_data
.
GetLength
(
1
);
int
h
=
0
;
for
(
h
=
height
-
1
;
h
>
0
;
h
--)
for
(
h
=
height
-
1
;
h
>
0
;
h
--)
{
int
all
=
0
;
for
(
int
w
=
0
;
w
<
width
;
w
++)
...
...
@@ -454,7 +448,7 @@ public class GameTextureManager
break
;
}
}
pic
.
k
=((
float
)
h
)
/
((
float
)
height
);
pic
.
k
=
((
float
)
h
)
/
((
float
)
height
);
if
(
pic
.
k
>
1
)
{
pic
.
k
=
1f
;
...
...
@@ -465,7 +459,7 @@ public class GameTextureManager
}
}
private
static
float
[,,]
getCuttedPic
(
string
path
,
bool
pCard
,
bool
EightEdition
)
private
static
float
[,,]
getCuttedPic
(
string
path
,
bool
pCard
,
bool
EightEdition
)
{
BitmapHelper
bitmap
=
new
BitmapHelper
(
path
);
int
left
=
0
,
top
=
0
,
right
=
bitmap
.
colors
.
GetLength
(
0
),
buttom
=
bitmap
.
colors
.
GetLength
(
1
);
...
...
@@ -593,11 +587,13 @@ public class GameTextureManager
}
private
static
void
ProcessingVerticleDrawing
(
PictureResource
pic
)
{
try
{
string
path
=
"picture/closeup/"
+
pic
.
code
.
ToString
()
+
".png"
;
if
(!
File
.
Exists
(
path
))
{
#
if
UNITY_EDITOR
||
UNITY_STANDALONE_WIN
//编译器、Windows
#if UNITY_EDITOR || UNITY_STANDALONE_WIN //编译器、Windows
path
=
"picture/card/"
+
pic
.
code
.
ToString
()
+
".png"
;
if
(!
File
.
Exists
(
path
))
{
...
...
@@ -625,9 +621,9 @@ public class GameTextureManager
}
if
(!
File
.
Exists
(
path
))
{
return
;
path
=
"picture/null.png"
;
}
pic
.
hashed_data
=
getCuttedPic
(
path
,
pic
.
pCard
,
Iam8
);
pic
.
hashed_data
=
getCuttedPic
(
path
,
pic
.
pCard
,
Iam8
);
softVtype
(
pic
,
0.5f
);
pic
.
k
=
1
;
//pic.autoMade = true;
...
...
@@ -636,7 +632,7 @@ public class GameTextureManager
* 以上处理其他平台无法正常使用
* 暂时只能直接贴图,以后再处理
*/
#
elif
UNITY_ANDROID
||
UNITY_IPHONE
//Android、iPhone
#elif UNITY_ANDROID || UNITY_IPHONE //Android、iPhone
path
=
"picture/null.png"
;
byte
[]
data
;
...
...
@@ -647,24 +643,11 @@ public class GameTextureManager
file
.
Read
(
data
,
0
,
(
int
)
file
.
Length
);
}
pic
.
data
=
data
;
//#elif UNITY_IPHONE //iPhone Test (Android not support)
//path = Application.streamingAssetsPath + "/closeup/" + pic.code.ToString() + ".png";
//if (File.Exists(path))
//{
// www = new WWW(path);
// byte[] data = www.bytes;
// pic.data = data;
//} else {
// path = Application.streamingAssetsPath + "/null.png"
// www = new WWW(path);
// byte[] data = www.bytes;
// pic.data = data;
//}
#
endif
#endif
}
else
{
#
if
UNITY_EDITOR
||
UNITY_STANDALONE_WIN
//编译器、Windows
#if UNITY_EDITOR || UNITY_STANDALONE_WIN //编译器、Windows
BitmapHelper
bitmap
=
new
BitmapHelper
(
path
);
int
left
;
int
right
;
...
...
@@ -713,7 +696,7 @@ public class GameTextureManager
}
if
(
wholeUNalpha
>=
((
width
+
height
)
*
0.5f
*
0.12f
))
{
softVtype
(
pic
,
0.7f
);
softVtype
(
pic
,
0.7f
);
}
caculateK
(
pic
);
...
...
@@ -721,7 +704,7 @@ public class GameTextureManager
* 以上处理其他平台无法正常使用
* 暂时只能直接贴图,以后再处理
*/
#
elif
UNITY_ANDROID
||
UNITY_IPHONE
//Android、iPhone
#elif UNITY_ANDROID || UNITY_IPHONE //Android、iPhone
byte
[]
data
;
using
(
FileStream
file
=
new
FileStream
(
path
,
FileMode
.
Open
,
FileAccess
.
Read
))
{
...
...
@@ -730,7 +713,7 @@ public class GameTextureManager
file
.
Read
(
data
,
0
,
(
int
)
file
.
Length
);
}
pic
.
data
=
data
;
#
endif
#endif
}
if
(!
loadedList
.
ContainsKey
(
hashPic
(
pic
.
code
,
pic
.
type
)))
...
...
@@ -738,6 +721,15 @@ public class GameTextureManager
loadedList
.
Add
(
hashPic
(
pic
.
code
,
pic
.
type
),
pic
);
}
}
catch
(
Exception
e
)
{
Debug
.
Log
(
"e 3"
+
e
.
ToString
());
}
finally
{
_sem
.
Release
();
}
}
private
static
void
softVtype
(
PictureResource
pic
,
float
si
)
{
...
...
@@ -790,6 +782,8 @@ public class GameTextureManager
}
private
static
void
ProcessingCardPicture
(
PictureResource
pic
)
{
try
{
string
path
=
"picture/card/"
+
pic
.
code
.
ToString
()
+
".png"
;
if
(!
File
.
Exists
(
path
))
...
...
@@ -811,7 +805,7 @@ public class GameTextureManager
if
(!
File
.
Exists
(
path
)
&&
pic
.
code
!=
0
&&
Program
.
DownloadImage
)
{
//YGOMobile (177x254)
df
.
Download
(
"http://download
.ygo2019.xyz/ygopro/pics/"
+
pic
.
code
.
ToString
()
+
".jpg"
,
"expansions/pics/"
+
pic
.
code
.
ToString
()
+
".jpg"
);
df
.
Download
(
"http://api
.ygo2019.xyz/ygopro/pics/"
+
pic
.
code
.
ToString
()
+
".jpg"
,
"expansions/pics/"
+
pic
.
code
.
ToString
()
+
".jpg"
);
path
=
"expansions/pics/"
+
pic
.
code
.
ToString
()
+
".jpg"
;
}
if
(!
File
.
Exists
(
path
)
&&
pic
.
code
!=
0
&&
Program
.
DownloadImage
)
...
...
@@ -851,6 +845,15 @@ public class GameTextureManager
}
}
}
catch
(
Exception
e
)
{
Debug
.
Log
(
"e 2"
+
e
.
ToString
());
}
finally
{
_sem
.
Release
();
}
}
private
static
UInt64
hashPic
(
long
code
,
GameTextureType
type
)
{
...
...
@@ -932,7 +935,7 @@ public class GameTextureManager
return
ret
;
}
public
static
bool
uiLoaded
=
false
;
public
static
bool
uiLoaded
=
false
;
public
static
Texture2D
get
(
string
name
)
{
...
...
Assets/SibylSystem/ResourceManagers/HttpDldFile.cs
View file @
68b5410a
...
...
@@ -10,25 +10,36 @@ using UnityEngine;
public
class
HttpDldFile
{
private
readonly
System
.
Threading
.
Semaphore
semaphore
=
new
System
.
Threading
.
Semaphore
(
6
,
6
);
public
bool
Download
(
string
url
,
string
filename
)
{
bool
flag
=
false
;
try
{
if
(!
Directory
.
Exists
(
Path
.
GetDirectoryName
(
filename
))){
if
(!
Directory
.
Exists
(
Path
.
GetDirectoryName
(
filename
)))
{
Directory
.
CreateDirectory
(
Path
.
GetDirectoryName
(
filename
));
}
using
(
var
client
=
new
WebClient
())
using
(
var
client
=
new
Timeout
WebClient
())
{
ServicePointManager
.
ServerCertificateValidationCallback
=
MyRemoteCertificateValidationCallback
;
//authorization needed to acces github
if
(
Path
.
GetExtension
(
filename
).
Contains
(
"png"
))
{
//client.Headers.Add(HttpRequestHeader.Authorization, string.Concat("token ", RepoData.GetToken()));
client
.
Headers
.
Add
(
HttpRequestHeader
.
ContentType
,
"application/x-www-form-urlencoded; charset=UTF-8"
);
client
.
Headers
.
Add
(
HttpRequestHeader
.
UserAgent
,
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36 Edge/15.15063"
);
client
.
DownloadFile
(
new
Uri
(
url
),
filename
+
".tmp"
);
client
.
Timeout
=
6500
;
}
if
(
Path
.
GetExtension
(
filename
).
Contains
(
"jpg"
))
{
client
.
Timeout
=
3500
;
}
semaphore
.
WaitOne
();
client
.
DownloadFile
(
new
Uri
(
url
),
filename
+
".tmp"
);
}
flag
=
true
;
if
(
File
.
Exists
(
filename
))
if
(
File
.
Exists
(
filename
))
{
File
.
Delete
(
filename
);
}
...
...
@@ -38,6 +49,10 @@ public class HttpDldFile
{
flag
=
false
;
}
finally
{
semaphore
.
Release
();
}
return
flag
;
}
public
static
bool
MyRemoteCertificateValidationCallback
(
System
.
Object
sender
,
...
...
@@ -68,5 +83,25 @@ public class HttpDldFile
}
return
isOk
;
}
}
public
class
TimeoutWebClient
:
WebClient
{
public
int
Timeout
{
get
;
set
;
}
public
TimeoutWebClient
()
{
Timeout
=
10000
;
}
public
TimeoutWebClient
(
int
timeout
)
{
Timeout
=
timeout
;
}
protected
override
WebRequest
GetWebRequest
(
Uri
address
)
{
WebRequest
request
=
base
.
GetWebRequest
(
address
);
request
.
Timeout
=
Timeout
;
return
request
;
}
}
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment