From 64ae5c54ccebf0dd6a4afe69d0c75dcfefe78650 Mon Sep 17 00:00:00 2001 From: MoNTE48 Date: Sat, 11 Aug 2018 02:46:23 +0200 Subject: [PATCH] Update mainmenu and iOS defaultsettings, iOS: v.1.1.20 --- build/iOS/MultiCraft/MultiCraft/Info.plist | 4 +- build/iOS/Podfile | 10 +-- build/iOS/deps/irrlicht.sh | 2 +- builtin/mainmenu/dlg_create_world.lua | 22 ++---- builtin/mainmenu/dlg_delete_world.lua | 13 ++-- builtin/mainmenu/tab_credits.lua | 6 +- builtin/mainmenu/tab_online.lua | 28 ++++---- builtin/mainmenu/tab_settings.lua | 62 +--------------- src/defaultsettings.cpp | 68 +++++++++++------- textures/base/bg_common.png | Bin 715 -> 1632 bytes textures/base/bg_dialog.png | Bin 0 -> 587 bytes textures/base/bg_local.png | Bin 3102 -> 5279 bytes .../base}/crack_anylength.png | Bin textures/base/empty.png | Bin 211 -> 210 bytes textures/base/escape.png | Bin 243 -> 242 bytes textures/base/local_creative_true_btn.png | Bin 177 -> 217 bytes textures/base/up_three.png | Bin 263 -> 262 bytes 17 files changed, 86 insertions(+), 129 deletions(-) create mode 100644 textures/base/bg_dialog.png rename {games/default/files/default/textures => textures/base}/crack_anylength.png (100%) diff --git a/build/iOS/MultiCraft/MultiCraft/Info.plist b/build/iOS/MultiCraft/MultiCraft/Info.plist index 152c62b40..6aaa8734c 100755 --- a/build/iOS/MultiCraft/MultiCraft/Info.plist +++ b/build/iOS/MultiCraft/MultiCraft/Info.plist @@ -17,9 +17,9 @@ CFBundlePackageType APPL CFBundleShortVersionString - 1.1.18 + 1.1.20 CFBundleVersion - 30 + 33 LSRequiresIPhoneOS NSAppTransportSecurity diff --git a/build/iOS/Podfile b/build/iOS/Podfile index 0016a1c09..4908e28cb 100755 --- a/build/iOS/Podfile +++ b/build/iOS/Podfile @@ -2,12 +2,14 @@ project 'MultiCraft/MultiCraft.xcodeproj' platform :ios, '8.0' target 'MultiCraft' do + source 'https://github.com/appodeal/CocoaPods.git' + source 'https://github.com/CocoaPods/Specs.git' + pod 'SSZipArchive' pod 'SDVersion' - - pod 'Appodeal/Core', '2.4.3-Beta6' - pod 'Appodeal/Interstitial', '2.4.3-Beta6' - pod 'Appodeal/Video', '2.4.3-Beta6' + pod 'Appodeal/Core', '2.4.5.1-Beta' + pod 'Appodeal/Interstitial', '2.4.5.1-Beta' + pod 'Appodeal/Video', '2.4.5.1-Beta' pod 'PersonalizedAdConsent', :git => 'https://github.com/MultiCraftProject/googleads-consent-sdk-ios' end diff --git a/build/iOS/deps/irrlicht.sh b/build/iOS/deps/irrlicht.sh index 869ac1ec5..069f18afe 100755 --- a/build/iOS/deps/irrlicht.sh +++ b/build/iOS/deps/irrlicht.sh @@ -3,7 +3,7 @@ . sdk.sh [ ! -d irrlicht-src ] && \ - svn co -r 5604 svn://svn.code.sf.net/p/irrlicht/code/branches/ogl-es irrlicht-src + svn co -r 5622 svn://svn.code.sf.net/p/irrlicht/code/branches/ogl-es irrlicht-src cd irrlicht-src/ diff --git a/builtin/mainmenu/dlg_create_world.lua b/builtin/mainmenu/dlg_create_world.lua index 6ddb2b213..87f15500b 100644 --- a/builtin/mainmenu/dlg_create_world.lua +++ b/builtin/mainmenu/dlg_create_world.lua @@ -46,30 +46,22 @@ local function create_world_formspec(dialogdata) current_seed = core.formspec_escape(current_seed) local retval = - "size[11.5,3,false]" .. + "size[11.5,3.75,false]" .. + "background[0,0;11.5,3;" .. core.formspec_escape(defaulttexturedir .. + "bg_dialog.png") .. ";true]" .. "label[2,0;" .. fgettext("World name") .. "]".. "field[4.5,0.4;6,0.5;te_world_name;;]" .. "label[2,1;" .. fgettext("Seed") .. "]".. "field[4.5,1.4;6,0.5;te_seed;;".. current_seed .. "]" .. - --"label[2,2;" .. fgettext("Mapgen") .. "]".. - --"dropdown[4.2,2;6.3;dd_mapgen;" .. mglist .. ";" .. selindex .. "]" .. + "label[2,2;" .. fgettext("Mapgen") .. "]".. + "dropdown[4.2,2;6.3;dd_mapgen;" .. mglist .. ";" .. selindex .. "]" .. "dropdown[600.2,6;6.3;games;" .. gamemgr.gamelist() .. ";1]" .. - "button[3.25,2.6;2.5,0.5;world_create_confirm;" .. fgettext("Create") .. "]" .. - "button[5.75,2.6;2.5,0.5;world_create_cancel;" .. fgettext("Cancel") .. "]" - - if #gamemgr.games == 0 then - retval = retval .. "box[2,4;8,1;#ff8800]label[2.25,4;" .. - fgettext("You have no subgames installed.") .. "]label[2.25,4.4;" .. - fgettext("Download one from minetest.net") .. "]" - elseif #gamemgr.games == 1 and gamemgr.games[1].id == "minimal" then - retval = retval .. "box[1.75,4;8.7,1;#ff8800]label[2,4;" .. - fgettext("Warning: The minimal development test is meant for developers.") .. "]label[2,4.4;" .. - fgettext("Download a subgame, such as minetest_game, from minetest.net") .. "]" - end + "button[3.25,3.4;2.5,0.5;world_create_confirm;" .. fgettext("Create") .. "]" .. + "button[5.75,3.4;2.5,0.5;world_create_cancel;" .. fgettext("Cancel") .. "]" return retval diff --git a/builtin/mainmenu/dlg_delete_world.lua b/builtin/mainmenu/dlg_delete_world.lua index bb0eac210..8ab68912c 100644 --- a/builtin/mainmenu/dlg_delete_world.lua +++ b/builtin/mainmenu/dlg_delete_world.lua @@ -18,11 +18,14 @@ local function delete_world_formspec(dialogdata) local retval = - "size[10,2.5,false]" .. - "label[0.5,0.5;" .. - fgettext("Delete World \"$1\"?", dialogdata.delete_name) .. "]" .. - "button[0.5,1.5;2.5,0.5;world_delete_confirm;" .. fgettext("Delete") .. "]" .. - "button[7.0,1.5;2.5,0.5;world_delete_cancel;" .. fgettext("Cancel") .. "]" + "size[11.5,3.75,false]" .. + "background[0,0;11.5,3;" .. core.formspec_escape(defaulttexturedir .. + "bg_dialog.png") .. ";true]" .. + "label[5,1.4;" .. + fgettext("Delete World") .. "]" .. + "label[5,1.8;" .. fgettext("\"$1\"?", dialogdata.delete_name) .. "]" .. + "button[3.25,3.4;2.5,0.5;world_delete_confirm;" .. fgettext("Delete") .. "]" .. + "button[5.75,3.4;2.5,0.5;world_delete_cancel;" .. fgettext("Cancel") .. "]" return retval end diff --git a/builtin/mainmenu/tab_credits.lua b/builtin/mainmenu/tab_credits.lua index 1f5cde18f..42d8de88c 100644 --- a/builtin/mainmenu/tab_credits.lua +++ b/builtin/mainmenu/tab_credits.lua @@ -22,6 +22,8 @@ local multicraft_developers = { "Bektur Mambetov (ubulem) ", "Alexander Zavrin (Ransom.00)", "sfan5 ", + "stujones11 Stuart Jones ", + "And other people who helped make the world better!", } local core_developers = { @@ -99,8 +101,8 @@ return { "label[0.1,0.5;https://github.com/MultiCraftProject]" .. "label[0.1,1.0;LGPLv3.0+ and CC-BY-SA 3.0]" .. "tablecolumns[color;text]" .. - "tableoptions[background=#00000000;highlight=#00000000;border=false]" .. - "table[0,1.6;11.75,3.5;list_credits;" .. + "tableoptions[background=#999999;highlight=#00000000;border=true]" .. + "table[0,1.6;11.8,3.8;list_credits;" .. "#FFFF00," .. fgettext("MultiCraft Developers") .. ",," .. buildCreditList(multicraft_developers) .. ",,," .. "#FFFF00," .. fgettext("Minetest Developers") .. ",," .. diff --git a/builtin/mainmenu/tab_online.lua b/builtin/mainmenu/tab_online.lua index fd919a2ff..b19cfb29c 100644 --- a/builtin/mainmenu/tab_online.lua +++ b/builtin/mainmenu/tab_online.lua @@ -33,33 +33,33 @@ local function get_formspec(tabview, name, tabdata) local retval = -- Search - "field[0.15,0.075;5.91,1;te_search;;" .. core.formspec_escape(tabdata.search_for) .. "]" .. - "button[5.62,-0.25;1.5,1;btn_mp_search;" .. fgettext("Search") .. "]" .. - "image_button[6.97,-.165;.83,.83;" .. core.formspec_escape(defaulttexturedir .. "refresh.png") - .. ";btn_mp_refresh;" .. fgettext("") .. "]" .. + "field[0.2,0.1;5.81,1;te_search;;" .. core.formspec_escape(tabdata.search_for) .. "]" .. + "button[5.62,-0.22;1.5,1;btn_mp_search;" .. fgettext("Search") .. "]" .. + "image_button[6.97,-0.125;.83,.83;" .. core.formspec_escape(defaulttexturedir .. "refresh.png") + .. ";btn_mp_refresh;" .. "]" .. -- Address / Port - "label[7.75,-0.25;" .. fgettext("Address / Port") .. "]" .. - "field[8,0.65;3.25,0.5;te_address;;" .. + "label[7.75,-0.3;" .. fgettext("Address / Port") .. "]" .. + "field[8,0.6;3.2,0.5;te_address;;" .. core.formspec_escape(core.settings:get("address")) .. "]" .. - "field[11.1,0.65;1.4,0.5;te_port;;" .. + "field[11.1,0.6;1.35,0.5;te_port;;" .. core.formspec_escape(core.settings:get("remote_port")) .. "]" .. -- Name / Password - "label[7.75,0.95;" .. fgettext("Name / Password") .. "]" .. - "field[8,1.85;2.9,0.5;te_name;;" .. + "label[7.75,0.85;" .. fgettext("Name / Password") .. "]" .. + "field[8,1.75;2.85,0.5;te_name;;" .. core.formspec_escape(core.settings:get("name")) .. "]" .. - "pwdfield[10.73,1.85;1.77,0.5;te_pwd;]" .. + "pwdfield[10.73,1.75;1.72,0.5;te_pwd;]" .. -- Description Background - "box[7.73,2.25;4.25,2.6;#999999]".. + "box[7.7,2.1;4.25,2.65;#999999]".. -- Connect - "button[10.1,5.15;2,0.5;btn_mp_connect;" .. fgettext("Connect") .. "]" + "button[9.9,5;2.25,0.5;btn_mp_connect;" .. fgettext("Connect") .. "]" if tabdata.fav_selected and fav_selected then if gamedata.fav then - retval = retval .. "button[7.75,5.15;2.3,0.5;btn_delete_favorite;" .. + retval = retval .. "button[7.7,5;2.3,0.5;btn_delete_favorite;" .. fgettext("Del. Favorite") .. "]" end if fav_selected.description then @@ -81,7 +81,7 @@ local function get_formspec(tabview, name, tabdata) image_column(fgettext("PvP enabled"), "pvp") .. ",padding=0.25;" .. "color,span=1;" .. "text,padding=1]" .. - "table[-0.15,0.8;7.75,4.75;favourites;" + "table[-0.09,0.7;7.7,4.9;favourites;" if menudata.search_result then for i = 1, #menudata.search_result do diff --git a/builtin/mainmenu/tab_settings.lua b/builtin/mainmenu/tab_settings.lua index 745b5c0d1..c755d6853 100644 --- a/builtin/mainmenu/tab_settings.lua +++ b/builtin/mainmenu/tab_settings.lua @@ -122,58 +122,6 @@ local function antialiasing_fname_to_name(fname) return 0 end -local function dlg_confirm_reset_formspec(data) - return "size[8,3]" .. - "label[1,1;" .. fgettext("Are you sure to reset your singleplayer world?") .. "]" .. - "button[1,2;2.6,0.5;dlg_reset_singleplayer_confirm;" .. fgettext("Yes") .. "]" .. - "button[4,2;2.8,0.5;dlg_reset_singleplayer_cancel;" .. fgettext("No") .. "]" -end - -local function dlg_confirm_reset_btnhandler(this, fields, dialogdata) - - if fields["dlg_reset_singleplayer_confirm"] ~= nil then - local worldlist = core.get_worlds() - local found_singleplayerworld = false - - for i = 1, #worldlist do - if worldlist[i].name == "singleplayerworld" then - found_singleplayerworld = true - gamedata.worldindex = i - end - end - - if found_singleplayerworld then - core.delete_world(gamedata.worldindex) - end - - core.create_world("singleplayerworld", 1) - worldlist = core.get_worlds() - found_singleplayerworld = false - - for i = 1, #worldlist do - if worldlist[i].name == "singleplayerworld" then - found_singleplayerworld = true - gamedata.worldindex = i - end - end - end - - this.parent:show() - this:hide() - this:delete() - return true -end - -local function showconfirm_reset(tabview) - local new_dlg = dialog_create("reset_spworld", - dlg_confirm_reset_formspec, - dlg_confirm_reset_btnhandler, - nil) - new_dlg:set_parent(tabview) - tabview:hide() - new_dlg:show() -end - local function formspec(tabview, name, tabdata) local tab_string = "box[0,0;3.5,4.5;#999999]" .. @@ -207,11 +155,7 @@ local function formspec(tabview, name, tabdata) "checkbox[8,0;cb_shaders;" .. fgettext("Shaders") .. ";" .. dump(core.settings:get_bool("enable_shaders")) .. "]" - if PLATFORM == "Android" or PLATFORM == "iOS" then - tab_string = tab_string .. - "button[8,4.75;3.75,0.5;btn_reset_singleplayer;" - .. fgettext("Reset singleplayer world") .. "]" - else + if PLATFORM ~= "Android" or PLATFORM ~= "iOS" then tab_string = tab_string .. "button[8,4.85;3.75,0.5;btn_change_keys;" .. fgettext("Change keys") .. "]" @@ -343,10 +287,6 @@ local function handle_settings_buttons(this, fields, tabname, tabdata) core.settings:set("touchtarget", fields["cb_touchscreen_target"]) return true end - if fields["btn_reset_singleplayer"] then - showconfirm_reset(this) - return true - end --Note dropdowns have to be handled LAST! local ddhandled = false diff --git a/src/defaultsettings.cpp b/src/defaultsettings.cpp index 3e36e0e2d..506e7a0af 100644 --- a/src/defaultsettings.cpp +++ b/src/defaultsettings.cpp @@ -160,13 +160,12 @@ void set_default_settings(Settings *settings) settings->setDefault("selectionbox_color", "(255,255,255)"); settings->setDefault("selectionbox_width", "4"); settings->setDefault("selectionbox_color", "(0,0,0)"); - settings->setDefault("selectionbox_width", "2"); settings->setDefault("node_highlighting", "box"); settings->setDefault("crosshair_color", "(255,255,255)"); settings->setDefault("crosshair_alpha", "255"); settings->setDefault("hud_scaling", "1.0"); settings->setDefault("gui_scaling", "1.0"); - settings->setDefault("gui_scaling_filter", "true"); + settings->setDefault("gui_scaling_filter", "false"); settings->setDefault("gui_scaling_filter_txr2img", "true"); settings->setDefault("desynchronize_mapblock_texture_animation", "true"); settings->setDefault("hud_hotbar_max_width", "1.0"); @@ -378,29 +377,29 @@ void set_default_settings(Settings *settings) settings->setDefault("touchtarget", "true"); settings->setDefault("touchscreen_threshold", "20"); settings->setDefault("fixed_virtual_joystick", "true"); - settings->setDefault("max_block_generate_distance", "3"); - settings->setDefault("pause_fps_max", "5"); settings->setDefault("doubletap_jump", "true"); - settings->setDefault("client_mapblock_limit", "250"); - settings->setDefault("active_block_range", "1"); - settings->setDefault("chunksize", "3"); settings->setDefault("gui_scaling_filter_txr2img", "false"); settings->setDefault("max_simultaneous_block_sends_per_client", "5"); settings->setDefault("abm_interval", "2.0"); - settings->setDefault("cloud_radius", "6"); settings->setDefault("client_unload_unused_data_timeout", "60"); settings->setDefault("curl_verify_cert", "false"); #endif #ifdef __ANDROID__ settings->setDefault("viewing_range", "35"); + settings->setDefault("pause_fps_max", "5"); settings->setDefault("smooth_lighting", "false"); settings->setDefault("selectionbox_width", "6"); settings->setDefault("emergequeue_limit_diskonly", "8"); settings->setDefault("emergequeue_limit_generate", "8"); + settings->setDefault("chunksize", "3"); + settings->setDefault("active_block_range", "1"); + settings->setDefault("max_block_generate_distance", "3"); + settings->setDefault("client_mapblock_limit", "250"); settings->setDefault("enable_3d_clouds", "false"); + settings->setDefault("cloud_radius", "6"); settings->setDefault("inventory_image_hack", "false"); - + // set font_path settings->setDefault("mono_font_path", "/system/fonts/DroidSansMono.ttf"); settings->setDefault("fallback_font_path", "/system/fonts/DroidSans.ttf"); @@ -421,7 +420,6 @@ void set_default_settings(Settings *settings) // tablets settings->setDefault("hud_scaling", "0.85"); settings->setDefault("gui_scaling", "1.2"); - settings->setDefault("mouse_sensitivity", "0.2"); } // Auto-detect language on Android @@ -434,32 +432,20 @@ void set_default_settings(Settings *settings) #endif #ifdef __IOS__ - settings->setDefault("viewing_range", "50"); - settings->setDefault("selectionbox_width", "3"); - settings->setDefault("smooth_lighting", "true"); + // set font_path settings->setDefault("mono_font_path", porting::getDataPath("fonts" DIR_DELIM "retrovillenc.ttf")); settings->setDefault("fallback_font_path", porting::getDataPath("fonts" DIR_DELIM "retrovillenc.ttf")); - // iPad - settings->setDefault("hud_scaling", "0.8"); - settings->setDefault("gui_scaling", "1.1"); - settings->setDefault("mouse_sensitivity", "0.2"); - + // set the size of the elements depending on the screen size if ([SDVersion deviceSize] == Screen3Dot5inch) { // 3.5" (old iPhone's) - settings->setDefault("viewing_range", "25"); settings->setDefault("hud_scaling", "0.5"); settings->setDefault("gui_scaling", "1.0"); - settings->setDefault("mouse_sensitivity", "0.2"); - settings->setDefault("enable_3d_clouds", "false"); - settings->setDefault("smooth_lighting", "false"); } else if ([SDVersion deviceSize] == Screen4inch) { // 4" (iPhone 5) settings->setDefault("hud_scaling", "0.5"); settings->setDefault("gui_scaling", "1.2"); settings->setDefault("mouse_sensitivity", "0.23"); - settings->setDefault("enable_3d_clouds", "false"); - settings->setDefault("smooth_lighting", "false"); } else if ([SDVersion deviceSize] == Screen4Dot7inch) { // 4.7" (iPhone) settings->setDefault("hud_scaling", "0.6"); @@ -472,11 +458,43 @@ void set_default_settings(Settings *settings) settings->setDefault("mouse_sensitivity", "0.3"); } else if ([SDVersion deviceSize] == Screen5Dot8inch) { // 5.8" (iPhone X) - settings->setDefault("viewing_range", "75"); settings->setDefault("hud_scaling", "0.7"); settings->setDefault("gui_scaling", "1.3"); settings->setDefault("mouse_sensitivity", "0.3"); settings->setDefault("hud_move_upwards", "15"); + } else { + // iPad + settings->setDefault("hud_scaling", "0.8"); + settings->setDefault("gui_scaling", "1.1"); + } + + // set the optimal settings depending on the model + if (([SDVersion deviceVersion] == iPhone4S) || ([SDVersion deviceVersion] == iPhone5) || ([SDVersion deviceVersion] == iPhone5S) || ([SDVersion deviceVersion] == iPhone6) || ([SDVersion deviceVersion] == iPhone6Plus) || ([SDVersion deviceVersion] == iPodTouch5Gen) || ([SDVersion deviceVersion] == iPad2) || ([SDVersion deviceVersion] == iPad3) || ([SDVersion deviceVersion] == iPadMini) || ([SDVersion deviceVersion] == iPadMini2)) { + // minimal settings + settings->setDefault("smooth_lighting", "false"); + settings->setDefault("viewing_range", "25"); + settings->setDefault("enable_3d_clouds", "false"); + settings->setDefault("cloud_radius", "6"); + settings->setDefault("pause_fps_max", "5"); + settings->setDefault("chunksize", "3"); + settings->setDefault("client_mapblock_limit", "250"); + settings->setDefault("active_block_range", "1"); + settings->setDefault("max_block_generate_distance", "2"); + } else if (([SDVersion deviceVersion] == iPhone6S) || ([SDVersion deviceVersion] == iPhone6SPlus) || ([SDVersion deviceVersion] == iPhoneSE) || ([SDVersion deviceVersion] == iPhone7) || ([SDVersion deviceVersion] == iPhone7Plus) || ([SDVersion deviceVersion] == iPodTouch6Gen) || ([SDVersion deviceVersion] == iPad4) || ([SDVersion deviceVersion] == iPadMini3) || ([SDVersion deviceVersion] == iPadMini4) || ([SDVersion deviceVersion] == iPadAir)) { + // medium settings + settings->setDefault("viewing_range", "50"); + settings->setDefault("chunksize", "3"); + settings->setDefault("cloud_radius", "6"); + settings->setDefault("client_mapblock_limit", "500"); + settings->setDefault("active_block_range", "1"); + settings->setDefault("max_block_generate_distance", "3"); + } else { +/*} else if (([SDVersion deviceVersion] == iPhone8) || ([SDVersion deviceVersion] == iPhone8Plus) || ([SDVersion deviceVersion] == iPhoneX) || ([SDVersion deviceVersion] == iPadPro9Dot7Inch) || ()([SDVersion deviceVersion] == iPadPro12Dot9Inch) || ([SDVersion deviceVersion] == iPadPro10Dot5Inch) || ([SDVersion deviceVersion] == iPadAir2) || ([SDVersion deviceVersion] == iPad5)|| ([SDVersion deviceVersion] == iPad6)) {*/ + // high settings + settings->setDefault("viewing_range", "75"); + settings->setDefault("client_mapblock_limit", "1000"); + settings->setDefault("active_block_range", "2"); + settings->setDefault("max_block_generate_distance", "5"); } // Auto-detect language on iOS diff --git a/textures/base/bg_common.png b/textures/base/bg_common.png index 046effa6d684a4e0bec9d212c00f95b7f6e1386e..edf8229e758ddee9802bd537fb76eef88f3b59cb 100644 GIT binary patch literal 1632 zcmeAS@N?(olHy`uVBq!ia0y~y;3!~VVBW*T3=|3Lw>%G|cmjMvTzR?0j@_Cj^`A_exMHRcO+!3>{>6Bk|h zo;dU|fs`Pl2|$e~2u0R`4^`4~f-|ai3GO#I6}o)0if$ZK0+q)XrXA*+CJkmySqv-KcDVFS0CG4psqDoB=)|u0Xn|sOajIr~)y==(EY{a!n-8bg=d#Wzp$Pz1cK4nD diff --git a/textures/base/bg_dialog.png b/textures/base/bg_dialog.png new file mode 100644 index 0000000000000000000000000000000000000000..5a278dc08b2ea946be745bae6cade1bb18119d3d GIT binary patch literal 587 zcmeAS@N?(olHy`uVBq!ia0y~yV5wtZU@T{128yhElkyZu@dWsUxbkv~9l7(Vf9E}~ zuo_9P>8U_PzdT(WLn>~)y|7WRK|z4Qz-`OMLKo?8iz~BPt={vWPidLL#PA{7+IY5t zV-pK!l-&ypNg)-F2?~z$Il4Gx%}p0^3aM!5dw7}y1sCj5Q2Yy&YP!@U0Z|0hBGdxb z3FHfacwoI8aM>V5kXbmC!PPghU@C)ZLp2Ys3@i-MkIh=R{n%VLK-MAx#R=v&4sghT z`~nNPCYF@~Fux%yyT{EXIrkP&)fBOm6~8%w`c&B@tNsDa)X?ux1RL|EQ6UX%%!N;m d3=I2A7>$kc>o0P>$Oonl22WQ%mvv4FO#sc>l|29e literal 0 HcmV?d00001 diff --git a/textures/base/bg_local.png b/textures/base/bg_local.png index 8d8a6eeffdaebcb9ff5d7f5dc27ae41823f5aa97..e296ba7ac5fbfbc064dd501a98b0afaa4b521f02 100644 GIT binary patch literal 5279 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 Ufg`(G&!Kl5HaM*>T1P$pFa8lpkpKVy literal 3102 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 diff --git a/games/default/files/default/textures/crack_anylength.png b/textures/base/crack_anylength.png similarity index 100% rename from games/default/files/default/textures/crack_anylength.png rename to textures/base/crack_anylength.png diff --git a/textures/base/empty.png b/textures/base/empty.png index eb0eee79cea658c2433e940fec1fcfb347db2efc..02b4a0c755102e3a80d646b99796423f74d06c72 100644 GIT binary patch delta 142 zcmV;90CE4*0n!1GOn-4nL_t(|Ue(hp62LGB1kf7phgrk@FfqAbOxj`k6Cpd(iRn6? zgk@V70dxw8OaQP_97sW6wfE-G3}OyRKyb_<&@sUJ8Ak&3f;I+ugAT#^9sdZZ4>bH3 wR_udsonDS#pEroMkT;or1N|uemCLdNlOWjO(<=R|00000Ne4wvM6N<$f;kpF&Hw-a delta 143 zcmV;A0C4}(0n-7HOn-7oL_t(|Ue(i~4!|%71kf4&4|9h9!_@TuX4pcSW}@tprDo@N z0s(OBivaox$h-hxtvOJFz^Zys x7D%PDHLkV1nBQMRNcE diff --git a/textures/base/escape.png b/textures/base/escape.png index 40e38eba01ae0fc68b4e97f543c30e8878793d8b..ade9d18ad491c51344409c86fd6284443087ae95 100644 GIT binary patch delta 148 zcmV;F0BisA0rCNmW`B1{L_t(|UhT?34Zt7_Mqw;qp%!ML7O;SYS(pVZROPa~bSJV< zxa`1xc}e@Fl(HNj8vrguWEvp&s{&{Y@HbO$03f)RV(Og(wF2l2I05trV1o@d5C_d0 z29IdQokjtI``c>>AUcZySpbME{fz-ge*v(zy&Lb;g}kKmIt>y40000pS7G_}^cMi%wsryU)P=lbS`KIk00000NkvXXu0mjf DLE}D` diff --git a/textures/base/local_creative_true_btn.png b/textures/base/local_creative_true_btn.png index 198fe53b59102a67064ef361e56aa0429089167e..afc0933fe6366b573b535e0db4c2345e457bd06e 100644 GIT binary patch literal 217 zcmeAS@N?(olHy`uVBq!ia0y~yV9Efpi

! zEI$JUoK-Q|vMnQi*}{bj-==0{yzOdhyT<*aAR{BwT-(9fdpA&gskfxmEd`S;K0x{A o3m2N&o{2TIA%kzxv$nissR~x$5W5(-59kmEPgg&ebxsLQ0EMMa>;M1& literal 177 zcmeAS@N?(olHy`uVBq!ia0y~yU^D@;Et!~sa!U%hbQLd=>}J_Zx_xwDo>blWVQwdhLLyg1*Jj16TGaVE9vHf8~p%#!aB Y-z1Op=wWEi0!C;1;_+6o1W8~_sl%uE1af&mj4xPTz?QWp?JxS$~X zPXu}<0FZWqfXtnc2uNus0Jwpk%NB|p9*nq+Y6e5VcbqWzgRH1^X ze~N&FLIA)_C?Int00ks469Tx2ws(LKzU~|g@euSQ^e_?M6u{{BCjnG|0Vp&u l-w;6+GDwsS5wx=L2yFg=yYIt4Bl7?N002ovPDHLkV1i|MNdW)=