Compare commits

...

25 Commits

Author SHA1 Message Date
dbc0225759 bump to 2025.1116.0 2025-11-19 15:09:50 +03:00
2c31994a41 huh 2025-11-19 15:09:47 +03:00
Dean Herbert
5fd562c365 Merge pull request #392 from nekodex/matchmaking-roulette-random 2025-11-15 18:20:33 +09:00
Jamie Taylor
7822fff8e0 Add sample for matchmaking roulette random 'reveal' 2025-11-14 19:19:41 +09:00
Dean Herbert
29fa3dab92 Merge pull request #391 from nekodex/mm-jump-sfx
Add additional 'jump' samples for quick play
2025-11-05 20:30:37 +09:00
dfbefdc532 Merge tag '2025.1028.0' 2025-11-03 20:07:59 +03:00
Jamie Taylor
42c4a3853b Add additional 'jump' samples for quick play 2025-10-30 21:43:01 +09:00
Dean Herbert
654c3d09cd Backgrounds for "Circles" intro sequence (#353)
* Added Circles assets

Created folder "Texture/Intro/Circles" to store circles assets (following example set by assets for "Welcome" Intro sequence)

* Addressed Naming Consistency

Renamed images from "menu-circles-background-x" format to "menu-background-x" to match conventions
2025-10-28 12:56:20 +09:00
N0Y0U2114
dd414fe878 Merge branch 'master' of https://github.com/N0Y0U2114/osu-resources-circles-background-assets 2025-10-27 22:52:21 -05:00
N0Y0U2114
5da1a1c806 Addressed Naming Consistency
Renamed images from "menu-circles-background-x" format to "menu-background-x" to match conventions
2025-10-27 22:52:15 -05:00
N0Y0U2114
91254bbbc7 Merge branch 'ppy:master' into master 2025-10-27 22:44:22 -05:00
Dean Herbert
5bd03adfe5 Merge pull request #390 from nekodex/matchmaking-more-more-sfx
Add/update matchmaking samples
2025-10-25 20:47:28 +09:00
Jamie Taylor
db103660aa Add/update matchmaking samples 2025-10-24 22:38:14 +09:00
Dean Herbert
4bb8eda4b8 Merge pull request #388 from nekodex/matchmaking-more-sfx
Add yet more samples for matchmaking
2025-10-06 14:17:16 +09:00
Jamie Taylor
8a64f35da0 More samples for matchmaking 2025-10-03 17:25:43 +09:00
Jinkku
3389589219 Separate spritesheet-based icons to single files (#386)
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2025-10-01 09:33:34 +02:00
Dean Herbert
3dc7b2587b Merge pull request #376 from cl8n/combo-fire
Add legacy combo fire textures and shader
2025-10-01 16:31:03 +09:00
Dean Herbert
84ee0b93e7 Merge pull request #387 from nekodex/matchmaking-sfx
Add more samples for matchmaking
2025-09-13 10:45:33 +09:00
58858ece4b its here
Some checks failed
Build / Build (push) Has been cancelled
2025-09-12 23:23:35 +03:00
a1f8f41662 changed game logo, updated Russian l10n 2025-09-12 22:07:10 +03:00
Jamie Taylor
6579de103e Add more samples for matchmaking 2025-09-12 18:18:57 +09:00
Jamie Taylor
cd84499dc1 Move roulette samples into subfolder 2025-09-12 18:18:44 +09:00
clayton
d23e432ca5 Remove combo fire vertex shader
I didn't realise this is the same thing as PositionAndColour
2025-08-23 14:22:32 -07:00
clayton
5c7d5ab2b1 Add combo fire textures and shader 2025-08-23 14:22:32 -07:00
N0Y0U2114
c4e8e5af17 Added Circles assets
Created folder "Texture/Intro/Circles" to store circles assets (following example set by assets for "Welcome" Intro sequence)
2025-01-30 00:35:00 -06:00
66 changed files with 163 additions and 34 deletions

24
osu-resources.sln Normal file
View File

@@ -0,0 +1,24 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.5.2.0
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "osu.Game.Resources", "osu.Game.Resources\osu.Game.Resources.csproj", "{4E0F1568-FD55-4BB7-4556-B4F5539069F0}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{4E0F1568-FD55-4BB7-4556-B4F5539069F0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{4E0F1568-FD55-4BB7-4556-B4F5539069F0}.Debug|Any CPU.Build.0 = Debug|Any CPU
{4E0F1568-FD55-4BB7-4556-B4F5539069F0}.Release|Any CPU.ActiveCfg = Release|Any CPU
{4E0F1568-FD55-4BB7-4556-B4F5539069F0}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {B169AF6B-FB68-49AB-98AD-AB42499E9C01}
EndGlobalSection
EndGlobal

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 93 KiB

View File

@@ -137,7 +137,7 @@
<value>Открыть в браузере после загрузки</value>
</data>
<data name="legacy_export_disclaimer" xml:space="preserve">
<value>Примечание: Чтобы игроки всех версий osu! смогли насладиться вашей картой, она будет преобразована в обратно совместимый формат. Мы сделали всё возможное для исключения влияния этого процесса на исходное состояние карты, однако некоторые данные новых функций, не поддерживаемых предыдущими версиями osu!, в любом случае могут быть потеряны.</value>
<value>Примечание: Чтобы игроки всех версий игры смогли насладиться вашей картой, она будет преобразована в обратно совместимый формат. Мы сделали всё возможное для исключения влияния этого процесса на исходное состояние карты, однако некоторые данные новых функций, не поддерживаемых предыдущими версиями osu!, в любом случае могут быть потеряны.</value>
</data>
<data name="empty_beatmaps_cannot_be_submitted" xml:space="preserve">
<value>Нельзя опубликовать пустую карту.</value>

View File

@@ -98,4 +98,7 @@
Мы постоянно работаем над улучшением игры — пожалуйста, оставайтесь с нами, чтобы быть в курсе грядущих обновлений!</value>
</data>
<data name="greeting_notification" xml:space="preserve">
<value>Добро пожаловать в jvnkosu!</value>
</data>
</root>

View File

@@ -62,13 +62,13 @@
<value>Загрузка карт</value>
</data>
<data name="description" xml:space="preserve">
<value>"Картами" мы называем игровые уровни. osu! скачивается без предварительно установленных карт. Этот шаг станет началом вашего пути к созданию своей коллекции карт.</value>
<value>"Картами" мы называем игровые уровни. Игра скачивается без предварительно установленных карт. Этот шаг станет началом вашего пути к созданию своей коллекции карт.</value>
</data>
<data name="tutorial_description" xml:space="preserve">
<value>Если вы новичок — пройдите обучение, чтобы привыкнуть к игре.</value>
</data>
<data name="tutorial_button" xml:space="preserve">
<value>Получить туториал osu!</value>
<value>Скачать туториал</value>
</data>
<data name="bundled_description" xml:space="preserve">
<value>Начать играть можно с нескольких рекомендованных карт.</value>

View File

@@ -68,7 +68,7 @@
<value>Первоначальная настройка</value>
</data>
<data name="first_run_setup_description" xml:space="preserve">
<value>Настройте osu! под себя</value>
<value>Настройте игру под себя</value>
</data>
<data name="welcome_title" xml:space="preserve">
<value>Добро пожаловать</value>
@@ -76,10 +76,10 @@
<data name="welcome_description" xml:space="preserve">
<value>Добро пожаловать в руководство по первоначальной настройке!
osu! - это тонконастраиваемая игра, поэтому иногда погружение в настройки может оказаться ошеломляющим. Это руководство поможет Вам сконцентрироваться на главном, чтобы обеспечить наилучший первый игровой опыт!</value>
Это тонконастраиваемая игра, поэтому иногда погружение в настройки может оказаться ошеломляющим. Это руководство поможет Вам сконцентрироваться на главном, чтобы обеспечить наилучший первый игровой опыт!</value>
</data>
<data name="ui_scale_description" xml:space="preserve">
<value>Размер интерфейса osu! может быть таким, каким пожелаете.</value>
<value>Размер интерфейса игры может быть таким, каким пожелаете.</value>
</data>
<data name="behaviour" xml:space="preserve">
<value>Настройки</value>

View File

@@ -83,13 +83,13 @@
<value>Проверка обновлений...</value>
</data>
<data name="open_osu_folder" xml:space="preserve">
<value>Открыть папку osu!</value>
<value>Открыть папку игры</value>
</data>
<data name="export_logs" xml:space="preserve">
<value>Экспортировать логи</value>
</data>
<data name="change_folder_location" xml:space="preserve">
<value>Переместить корневую папку osu!...</value>
<value>Переместить корневую папку игры...</value>
</data>
<data name="run_setup_wizard" xml:space="preserve">
<value>Запустить мастер настройки</value>
@@ -110,6 +110,6 @@
<value>Если у вас возникнут проблемы с запуском игры, установите последнюю версию с официального сайта для восстановления.</value>
</data>
<data name="running_latest_release" xml:space="preserve">
<value>Вы играете в последнюю версию osu! ({0})</value>
<value>Вы играете в последнюю версию игры ({0})</value>
</data>
</root>

View File

@@ -146,7 +146,7 @@
<value>Чтобы сменить отрисовщик, игру нужно закрыть и запустить заново.</value>
</data>
<data name="minimise_on_focus_loss" xml:space="preserve">
<value>Сворачивать osu! при переключении на другое приложение</value>
<value>Сворачивать игру при переключении на другое приложение</value>
</data>
<data name="shrink_game_to_safe_area" xml:space="preserve">
<value>Подогнать размеры игры под камеры и вырезы</value>

View File

@@ -62,7 +62,7 @@
<value>Проверка возможностей полноэкранного режима...</value>
</data>
<data name="osu_is_running_exclusive_fullscreen" xml:space="preserve">
<value>osu! работает в эксклюзивном полноэкранном режиме, гарантируя низкую задержку!</value>
<value>Игра работает в эксклюзивном полноэкранном режиме, гарантируя низкую задержку!</value>
</data>
<data name="unable_to_run_exclusive_fullscreen" xml:space="preserve">
<value>Невозможно запустить эксклюзивный полноэкранный режим. Вы можете ощущать небольшую задержку ввода.</value>

View File

@@ -80,7 +80,7 @@
<value>Выбранный путь уже содержит установку osu!. Воспользоваться этими данными?</value>
</data>
<data name="restart_and_re_open_required_for_completion" xml:space="preserve">
<value>Чтобы выполнить эту операцию, osu! будет закрыта. Пожалуйста, откройте игру снова, чтобы начать использовать новый путь для файлов.</value>
<value>Чтобы выполнить эту операцию, игра будет закрыта. Пожалуйста, откройте её снова, чтобы начать использовать новый путь для файлов.</value>
</data>
<data name="delete_all_beatmaps" xml:space="preserve">
<value>Удалить ВСЕ карты</value>

View File

@@ -74,13 +74,13 @@
<value>Ваша батарея разряжена! Зарядите своё устройство во избежания прерываний во время игры.</value>
</data>
<data name="game_volume_too_low" xml:space="preserve">
<value>osu! будет плохо слышно при таком уровне громкости. Нажмите сюда, чтобы восстановить его.</value>
<value>Игру будет плохо слышно при таком уровне громкости. Нажмите сюда, чтобы восстановить его.</value>
</data>
<data name="no_autoplay_mod" xml:space="preserve">
<value>Мод Autoplay не доступен для текущего режима игры!</value>
</data>
<data name="audio_playback_issue" xml:space="preserve">
<value>Кажется, osu! неправильно проигрывает звук.
<value>Кажется, игра неправильно проигрывает звук.
Попробуйте выбрать другое устройство воспроизведения.</value>
</data>
@@ -115,7 +115,7 @@
<value>Локальная версия карты для этой записи игры отличается от необходимой. Возможно, вам нужно обновить карту или скачать её заново.</value>
</data>
<data name="game_version_after_update" xml:space="preserve">
<value>osu! обновлена до версии {0}.
<value>Игра обновлена до версии {0}.
Нажмите сюда, чтобы узнать о нововведениях!</value>
</data>
<data name="update_ready_to_install" xml:space="preserve">

View File

@@ -59,7 +59,7 @@
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="supporter_only_duration_notice" xml:space="preserve">
<value>Плейлист с длительностью более 2 недель можно создать только с тегом osu!supporter.</value>
<value>Плейлист с длительностью более 2 недель можно создать только с тегом саппортера.</value>
</data>
<data name="cant_invite_this_user_as" xml:space="preserve">
<value>Нельзя пригласить игрока, которого заблокировали вы или который заблокировал вас.</value>

View File

@@ -92,9 +92,9 @@
<value>Жёсткие ссылки не поддерживаются Вашей операционной системой, поэтому во время импорта будет создана копия всех файлов.</value>
</data>
<data name="second_copy_will_be_made_windows" xml:space="preserve">
<value>Во время импорта будет создана копия всех файлов. Чтобы этого избежать, убедитесь, что корневая папка osu!lazer расположена на том же диске, где и предыдущая установка osu!, и что файловая система диска — NTFS.</value>
<value>Во время импорта будет создана копия всех файлов. Чтобы этого избежать, убедитесь, что корневая папка игры расположена на том же диске, где и предыдущая установка osu!, и что файловая система диска — NTFS.</value>
</data>
<data name="second_copy_will_be_made_other_platforms" xml:space="preserve">
<value>Во время импорта будет создана копия всех файлов. Чтобы этого избежать, убедитесь, что корневая папка osu!lazer расположена на том же диске, где и предыдущая установка osu!, и что файловая система диска поддерживает жёсткие ссылки.</value>
<value>Во время импорта будет создана копия всех файлов. Чтобы этого избежать, убедитесь, что корневая папка игры расположена на том же диске, где и предыдущая установка osu!, и что файловая система диска поддерживает жёсткие ссылки.</value>
</data>
</root>

View File

@@ -62,6 +62,6 @@
<value>настройки</value>
</data>
<data name="header_description" xml:space="preserve">
<value>измените поведение osu!</value>
<value>измените поведение игры</value>
</data>
</root>

View File

@@ -62,10 +62,10 @@
<value>Ошибка хранилища osu!</value>
</data>
<data name="location_is_not_accessible" xml:space="preserve">
<value>Указанный путь к файлам osu! ("{0}") недоступен. Если файлы находятся на внешнем накопителе, пожалуйста, переподключите устройство и попробуйте ещё раз.</value>
<value>Указанный путь к файлам игры ("{0}") недоступен. Если файлы находятся на внешнем накопителе, пожалуйста, переподключите устройство и попробуйте ещё раз.</value>
</data>
<data name="location_is_empty" xml:space="preserve">
<value>Указанный путь к файлам osu! ("{0}") пуст. Если вы переместили файлы, пожалуйста, закройте osu! и верните их.</value>
<value>Указанный путь к файлам игры ("{0}") пуст. Если вы переместили файлы, пожалуйста, закройте osu! и верните их.</value>
</data>
<data name="try_again" xml:space="preserve">
<value>Проверить ещё раз</value>

View File

@@ -83,7 +83,7 @@
<value>Голосовое приветствие</value>
</data>
<data name="osu_music_theme" xml:space="preserve">
<value>Музыкальная тема osu!</value>
<value>Музыкальная тема</value>
</data>
<data name="intro_sequence" xml:space="preserve">
<value>Музыкальное приветствие</value>
@@ -91,11 +91,20 @@
<data name="background_source" xml:space="preserve">
<value>Источник фона</value>
</data>
<data name="use_seasonal_backgrounds" xml:space="preserve">
<value>Использовать фоны с сервера</value>
</data>
<data name="seasonal_backgrounds" xml:space="preserve">
<value>Сезонные фоны</value>
</data>
<data name="seasonal_backgrounds_categories" xml:space="preserve">
<value>Категория фонов</value>
</data>
<data name="seasonal_backgrounds_refresh" xml:space="preserve">
<value>Обновить список категорий</value>
</data>
<data name="not_supporter_note" xml:space="preserve">
<value>Изменение этого параметра работает только с тегом osu!supporter.</value>
<value>Изменение этого параметра работает только с тегом саппортера.</value>
</data>
<data name="song_select_header" xml:space="preserve">
<value>Меню выбора карты</value>
@@ -154,4 +163,7 @@
<data name="selected_mods" xml:space="preserve">
<value>Выбранные моды</value>
</data>
<data name="force_select_v1" xml:space="preserve">
<value>Использовать классическую версию экрана выбора карт (SelectV1)</value>
</data>
</root>

View File

@@ -0,0 +1,90 @@
#ifndef LEGACY_COMBO_FIRE_FS
#define LEGACY_COMBO_FIRE_FS
#include "sh_TextureWrapping.h"
layout(location = 0) in highp vec2 v_TexCoord;
layout(location = 1) in lowp vec4 v_Colour;
layout(std140, set = 0, binding = 0) uniform m_FireParameters
{
highp float g_Time;
highp float g_AlphaFactor;
highp float g_OrangeToBlueLerp;
highp vec4 g_OrangeTexRect;
highp vec4 g_BlueTexRect;
highp vec4 g_EffectsTexRect;
};
layout(set = 1, binding = 0) uniform lowp texture2D m_OrangeTexture;
layout(set = 1, binding = 1) uniform lowp sampler m_OrangeSampler;
layout(set = 2, binding = 0) uniform lowp texture2D m_BlueTexture;
layout(set = 2, binding = 1) uniform lowp sampler m_BlueSampler;
layout(set = 3, binding = 0) uniform lowp texture2D m_EffectsTexture;
layout(set = 3, binding = 1) uniform lowp sampler m_EffectsSampler;
layout(location = 0) out vec4 o_Colour;
const highp float noiseHeightScale = 0.44;
const highp float noiseHeightOffset = -3.8;
const highp vec3 noiseSpeeds = vec3(0.69, 0.52, 0.75);
const highp vec3 noiseWeights = vec3(0.12, 0.09, 0.07);
const int WRAP_CLAMP_TO_EDGE = 1;
const int WRAP_REPEAT = 3;
lowp vec4 wrappedTexture(lowp texture2D t, lowp sampler s, highp vec2 pos, highp vec4 texRect, int wrapMode)
{
pos = vec2
(
wrap(pos.x, wrapMode, 0, 1),
wrap(pos.y, wrapMode, 0, 1)
);
return texture(sampler2D(t, s), pos * (texRect.zw - texRect.xy) + texRect.xy, -0.9);
}
void main(void)
{
// Take 3 samples of the noise texture (red channel of effects)
highp vec3 noiseCoordYs = noiseSpeeds * g_Time + v_TexCoord.y;
lowp vec3 noiseSamples = vec3
(
wrappedTexture(m_EffectsTexture, m_EffectsSampler, vec2(v_TexCoord.x, noiseCoordYs.x), g_EffectsTexRect, WRAP_REPEAT).r,
wrappedTexture(m_EffectsTexture, m_EffectsSampler, vec2(v_TexCoord.x, noiseCoordYs.y), g_EffectsTexRect, WRAP_REPEAT).r,
wrappedTexture(m_EffectsTexture, m_EffectsSampler, vec2(v_TexCoord.x, noiseCoordYs.z), g_EffectsTexRect, WRAP_REPEAT).r
);
// Weighted sum of the noise samples, each rescaled to [-1, 1]
lowp float noiseSum = dot(noiseSamples * 2 - 1, noiseWeights);
// Apply noise to texture coordinate
lowp vec2 adjustedCoord = v_TexCoord + vec2(noiseSum) * (v_TexCoord.y * noiseHeightScale + noiseHeightOffset);
// Take samples of orange and blue with the adjusted coordinate
lowp vec4 orange = wrappedTexture(m_OrangeTexture, m_OrangeSampler, adjustedCoord, g_OrangeTexRect, WRAP_CLAMP_TO_EDGE);
// Change from osu!stable: Mask away top-right corner. The opacity tricks
// below leave some artifacts of the orange fire in that corner. The smooth
// step helps blend the orange to blue fire transition better.
orange.a *= smoothstep(-0.1, 0.1, -v_TexCoord.x + v_TexCoord.y);
lowp vec4 blue = wrappedTexture(m_BlueTexture, m_BlueSampler, adjustedCoord, g_BlueTexRect, WRAP_CLAMP_TO_EDGE);
// Mix orange and blue together
lowp vec4 base = mix(orange, blue, g_OrangeToBlueLerp);
// Take sample of the "opacity" texture (green and blue channel of
// effects) with the adjusted coordinate. Despite what it was named, the
// texture also includes a subtle greyscale component.
lowp vec4 opacity = wrappedTexture(m_EffectsTexture, m_EffectsSampler, adjustedCoord, g_EffectsTexRect, WRAP_CLAMP_TO_EDGE).gggb;
// Adjust alpha using the base green channel and the alpha factor
opacity.a *= clamp((base.g * 0.5 - 0.5 + g_AlphaFactor) / 0.1, 0, 1);
o_Colour = base * opacity * v_Colour;
}
#endif

Binary file not shown.

After

Width:  |  Height:  |  Size: 106 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 142 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 94 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 717 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 724 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 837 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 739 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 745 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 832 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 653 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 103 KiB

After

Width:  |  Height:  |  Size: 339 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 98 KiB

After

Width:  |  Height:  |  Size: 339 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 303 KiB

After

Width:  |  Height:  |  Size: 162 KiB

View File

@@ -3,20 +3,20 @@
<TargetFramework>netstandard2.1</TargetFramework>
<GenerateDocumentationFile>true</GenerateDocumentationFile>
<NoWarn>$(NoWarn);1591</NoWarn>
<Title>osu!resources</Title>
<Product>osu!resources</Product>
<Company>ppy Pty Ltd</Company>
<Title>jvnkosu!resources</Title>
<Product>jvnkosu!resources</Product>
<Company>ppy Pty Ltd, jvnkosu! team</Company>
</PropertyGroup>
<PropertyGroup Label="Nuget">
<Title>osu!resources</Title>
<PackageId>ppy.osu.Game.Resources</PackageId>
<Authors>ppy Pty Ltd</Authors>
<PackageLicenseUrl>https://github.com/ppy/osu-resources/blob/master/LICENCE.md</PackageLicenseUrl>
<PackageProjectUrl>https://github.com/ppy/osu-resources</PackageProjectUrl>
<RepositoryUrl>https://github.com/ppy/osu-resources</RepositoryUrl>
<Title>jvnkosu!resources</Title>
<PackageId>jvnkosu.Resources</PackageId>
<Authors>ppy Pty Ltd, jvnkosu! team</Authors>
<PackageLicenseUrl>https://gitea.jvnko.boats/jvnkosu/resources/blob/master/LICENCE.md</PackageLicenseUrl>
<PackageProjectUrl>https://gitea.jvnko.boats/jvnkosu/resources</PackageProjectUrl>
<RepositoryUrl>https://gitea.jvnko.boats/jvnkosu/resources</RepositoryUrl>
<PackageReleaseNotes>Automated release.</PackageReleaseNotes>
<copyright>Copyright (c) 2019 ppy Pty Ltd</copyright>
<PackageTags>osu game resources</PackageTags>
<PackageTags>osu game resources jvnkosu</PackageTags>
</PropertyGroup>
<ItemGroup>
<EmbeddedResource Include="Beatmaps\**\*" />