14 return CorePath.packageCore +
"Texture/";
23 this.AddBase(textureData.block,
"blocks.png", tileMap.passBlock,
"_MainTex");
24 this.AddBase(textureData.floor,
"floors.png", tileMap.passFloor,
"_MainTex");
25 this.AddBase(textureData.objs_SS,
"objs_SS.png", tileMap.passObjSS,
"_MainTex");
26 this.AddBase(textureData.objs_S,
"objs_S.png", tileMap.passObjS,
"_MainTex");
27 this.AddBase(textureData.objs,
"objs.png", tileMap.passObj,
"_MainTex");
28 this.AddBase(textureData.objs_L,
"objs_L.png", tileMap.passObjL,
"_MainTex");
29 this.AddBase(textureData.roofs,
"roofs.png", tileMap.passRoof,
"_MainTex");
30 this.AddBase(textureData.shadows,
"shadows.png", tileMap.passShadow,
"_MainTex");
31 this.AddBase(textureData.fov,
"fov.png", tileMap.passFov,
"_MainTex");
32 this.AddBase(textureData.objs_C,
"objs_C.png", tileMap.passChara,
"_MainTex");
33 this.AddBase(textureData.objs_CLL,
"objs_CLL.png", tileMap.passCharaLL,
"_MainTex");
34 this.AddBase(textureData.block_snow,
"blocks_snow.png", tileMap.passBlock.snowPass,
"_MainTex");
35 this.AddBase(textureData.floor_snow,
"floors_snow.png", tileMap.passFloor.snowPass,
"_MainTex");
36 this.AddBase(textureData.objs_S_snow,
"objs_S_snow.png", tileMap.passObjS.snowPass,
"_MainTex");
37 this.AddBase(textureData.objs_snow,
"objs_snow.png", tileMap.passObj.snowPass,
"_MainTex");
38 this.AddBase(textureData.objs_L_snow,
"objs_L_snow.png", tileMap.passObjL.snowPass,
"_MainTex");
39 this.Add(tileMap.passRamp, textureData.block,
"_MainTex");
40 this.Add(tileMap.passWaterBlock, textureData.block,
"_MainTex");
41 this.Add(tileMap.passFog, textureData.block,
"_MainTex");
42 this.Add(tileMap.passLiquid, textureData.block,
"_MainTex");
43 this.Add(tileMap.passBlockEx, textureData.block,
"_MainTex");
44 this.Add(tileMap.passInner, textureData.block,
"_MainTex");
45 this.Add(tileMap.passBlockMarker, textureData.block,
"_MainTex");
46 this.Add(tileMap.passEdge, textureData.floor,
"_MainTex");
47 this.Add(tileMap.passFloorEx, textureData.floor,
"_MainTex");
48 this.Add(tileMap.passFloorWater, textureData.floor,
"_MainTex");
49 this.Add(tileMap.passAutoTile, textureData.floor,
"_MainTex");
50 this.Add(tileMap.passShore, textureData.floor,
"_MainTex");
51 this.Add(tileMap.passAutoTileWater, textureData.floor,
"_MainTex");
52 this.Add(tileMap.passFloorMarker, textureData.floor,
"_MainTex");
53 this.Add(tileMap.passCharaL, textureData.objs_C,
"_MainTex");
54 this.Add(tileMap.passIcon, textureData.objs_S,
"_MainTex");
55 this.AddList(textureData.world,
"world.png");
56 this.AddList(textureData.bird,
"bird1.png");
57 foreach (FileInfo fileInfo
in new DirectoryInfo(CorePath.user +
"/Texture Replace").GetFiles())
59 if (fileInfo.Name.EndsWith(
".png"))
61 this.TryAddReplace(fileInfo,
TextureReplace.Source.User,
true,
false);
64 foreach (FileInfo file
in EClass.core.mods.replaceFiles)
71 public void AddBase(
TextureData data,
string path,
MeshPass pass,
string texName =
"_MainTex")
73 this.texMap[data.id] = data;
74 data.path = this.pathTex + path;
75 data.texName = texName;
76 data.dictReplace.Clear();
77 data.tileW = data.tex.width / (int)pass.pmesh.tiling.x;
78 data.tileH = data.tex.height / (int)pass.pmesh.tiling.y;
79 this.texMap[data.id].listPass.Add(pass);
85 this.texMap[from.id].listPass.Add(to);
91 data.path = this.pathTex + path;
92 this.texMap[data.id] = data;
96 public void RefreshTextures()
98 foreach (
TextureData textureData
in this.texMap.Values)
100 textureData.TryRefresh();
104 EClass.scene.ApplyZoneConfig();
109 public void OnDropFile(List<string> paths)
112 foreach (
string fileName
in paths)
114 FileInfo fileInfo =
new FileInfo(fileName);
115 if (this.TryAddReplace(fileInfo,
TextureReplace.Source.User,
false,
false))
117 string text = CorePath.user +
"/Texture Replace/" + fileInfo.Name;
120 if (File.Exists(text))
124 fileInfo.CopyTo(text,
true);
129 this.TryAddReplace(
new FileInfo(text),
TextureReplace.Source.User,
true,
true);
133 Msg.Say(
"Imported " + num.ToString() +
"image(s)");
137 public bool TryAddReplace(FileInfo file,
TextureReplace.Source source =
TextureReplace.Source.Mod,
bool add =
true,
bool refresh =
false)
139 string[] array = Path.GetFileNameWithoutExtension(file.Name).Split(
'_', StringSplitOptions.None);
140 if (array.Length == 1)
144 string key = array[0];
146 if (!
int.TryParse(array[1], out index))
150 if (!this.texMap.ContainsKey(key))
155 if (textureData.listPass.Count == 0)
170 textureData.TryRefresh();
177 public void ApplyLocalReplace(
string path)
179 foreach (
TextureData textureData
in this.texMap.Values)
181 if (textureData.listReplaceLocal.Count > 0)
183 textureData.forceRefresh =
true;
184 foreach (
TextureReplace textureReplace
in textureData.listReplaceLocal)
186 textureReplace.DestoryTex();
187 if (textureReplace.original !=
null)
189 textureData.dictReplace[textureReplace.index] = textureReplace.original;
193 textureData.dictReplace.Remove(textureReplace.index);
197 textureData.listReplaceLocal.Clear();
199 string path2 = path +
"Texture Replace";
200 if (Directory.Exists(path2))
202 foreach (FileInfo file
in new DirectoryInfo(path2).GetFiles())
204 this.TryAddReplace(file,
TextureReplace.Source.Local,
true,
false);
207 this.RefreshTextures();
211 public Dictionary<string, TextureData> texMap =
new Dictionary<string, TextureData>();