Start Test with BlockColor
The goal is to modify the multicraft / minetest sources to run blockcolor on and to provide a legal and valid source to compile for windows, android, linux. The goal is to modify the multicraft / minetest sources to run blockcolor on and to provide a legal and valid source to compile for windows, android, linux. It may be that the project does not compile correctly or badly, I have not finished. Any help is welcome and I would soon open a forum for this.
|
@ -1,121 +0,0 @@
|
||||||
## Editors and Development environments
|
|
||||||
*~
|
|
||||||
*.swp
|
|
||||||
*.bak*
|
|
||||||
*.orig
|
|
||||||
# Vim
|
|
||||||
*.vim
|
|
||||||
# Kate
|
|
||||||
.*.kate-swp
|
|
||||||
.swp.*
|
|
||||||
# KDevelop4
|
|
||||||
.kdev4/
|
|
||||||
*.kdev4
|
|
||||||
# Eclipse (CDT and LDT)
|
|
||||||
.project
|
|
||||||
.cproject
|
|
||||||
.settings/
|
|
||||||
.buildpath
|
|
||||||
.metadata
|
|
||||||
# GNU Global
|
|
||||||
tags
|
|
||||||
!tags/
|
|
||||||
gtags.files
|
|
||||||
# OS X
|
|
||||||
.DS_Store
|
|
||||||
.idea/*
|
|
||||||
# Codelite
|
|
||||||
*.project
|
|
||||||
desktop.ini
|
|
||||||
|
|
||||||
## Files related to minetest development cycle
|
|
||||||
/*.patch
|
|
||||||
*.diff
|
|
||||||
# GNU Patch reject file
|
|
||||||
*.rej
|
|
||||||
|
|
||||||
|
|
||||||
## Non-static MultiCraft directories or symlinks to these
|
|
||||||
/bin/
|
|
||||||
/cache
|
|
||||||
/screenshots
|
|
||||||
/sounds
|
|
||||||
/mods/*
|
|
||||||
!/mods/minetest/
|
|
||||||
/mods/minetest/*
|
|
||||||
!/mods/minetest/mods_here.txt
|
|
||||||
/worlds
|
|
||||||
/world/
|
|
||||||
/clientmods/*
|
|
||||||
!/clientmods/preview/
|
|
||||||
/client/mod_storage/
|
|
||||||
|
|
||||||
## Configuration/log files
|
|
||||||
debug.txt
|
|
||||||
multicraft.conf
|
|
||||||
|
|
||||||
## Other files generated by minetest
|
|
||||||
screenshot_*.png
|
|
||||||
|
|
||||||
## Doxygen files
|
|
||||||
doc/Doxyfile
|
|
||||||
doc/html/
|
|
||||||
doc/doxygen_*
|
|
||||||
|
|
||||||
## Build files
|
|
||||||
CMakeFiles
|
|
||||||
Makefile
|
|
||||||
!build/android/Makefile
|
|
||||||
cmake_install.cmake
|
|
||||||
CMakeCache.txt
|
|
||||||
CPackConfig.cmake
|
|
||||||
CPackSourceConfig.cmake
|
|
||||||
src/android_version.h
|
|
||||||
src/android_version_githash.h
|
|
||||||
src/cmake_config.h
|
|
||||||
src/cmake_config_githash.h
|
|
||||||
src/lua/build/
|
|
||||||
locale/
|
|
||||||
.directory
|
|
||||||
.gradle/
|
|
||||||
*.cbp
|
|
||||||
*.layout
|
|
||||||
*.o
|
|
||||||
*.a
|
|
||||||
*.ninja
|
|
||||||
.ninja*
|
|
||||||
*.gch
|
|
||||||
*.iml
|
|
||||||
test_config.h
|
|
||||||
cmake-build-debug/
|
|
||||||
cmake-build-release/
|
|
||||||
|
|
||||||
## Android build files
|
|
||||||
build/android/src/main/assets
|
|
||||||
build/android/build
|
|
||||||
build/android/deps
|
|
||||||
build/android/libs
|
|
||||||
build/android/jni/lib
|
|
||||||
build/android/jni/src
|
|
||||||
build/android/src/main/jniLibs
|
|
||||||
build/android/obj
|
|
||||||
build/android/local.properties
|
|
||||||
build/android/.gradle
|
|
||||||
timestamp
|
|
||||||
.idea
|
|
||||||
|
|
||||||
## iOS build files
|
|
||||||
build/iOS/MultiCraft/MultiCraft.xcodeproj/xcuserdata
|
|
||||||
build/iOS/MultiCraft/MultiCraft.xcodeproj/project.xcworkspace
|
|
||||||
# build/iOS/MultiCraft/MultiCraft/Assets.xcassets/AppIcon.appiconset/*.png
|
|
||||||
build/iOS/MultiCraft.xcworkspace
|
|
||||||
build/iOS/Pods
|
|
||||||
build/iOS/Podfile.lock
|
|
||||||
build/iOS/deps/*
|
|
||||||
!build/iOS/deps/*.sh
|
|
||||||
build/iOS/assets.zip
|
|
||||||
build/iOS/worlds.zip
|
|
||||||
build/iOS/Ads
|
|
||||||
|
|
||||||
## WindowsApp files
|
|
||||||
build/WindowsApp/multicraft-windows.zip
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
{
|
||||||
|
"CurrentProjectSetting": null
|
||||||
|
}
|
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"ExpandedNodes": [
|
||||||
|
""
|
||||||
|
],
|
||||||
|
"PreviewInSolutionExplorer": false
|
||||||
|
}
|
|
@ -6,8 +6,8 @@ if(${CMAKE_VERSION} STREQUAL "2.8.2")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# This can be read from ${PROJECT_NAME} after project() is called
|
# This can be read from ${PROJECT_NAME} after project() is called
|
||||||
project(MultiCraft)
|
project(BlockColor)
|
||||||
set(PROJECT_NAME_CAPITALIZED "MultiCraft")
|
set(PROJECT_NAME_CAPITALIZED "BlockColor")
|
||||||
|
|
||||||
# Works only for cmake 3.1 and greater
|
# Works only for cmake 3.1 and greater
|
||||||
set(CMAKE_CXX_STANDARD 11)
|
set(CMAKE_CXX_STANDARD 11)
|
||||||
|
@ -172,20 +172,20 @@ install(FILES "doc/lua_api.txt" DESTINATION "${DOCDIR}")
|
||||||
install(FILES "doc/menu_lua_api.txt" DESTINATION "${DOCDIR}")
|
install(FILES "doc/menu_lua_api.txt" DESTINATION "${DOCDIR}")
|
||||||
install(FILES "doc/texture_packs.txt" DESTINATION "${DOCDIR}")
|
install(FILES "doc/texture_packs.txt" DESTINATION "${DOCDIR}")
|
||||||
install(FILES "doc/world_format.txt" DESTINATION "${DOCDIR}")
|
install(FILES "doc/world_format.txt" DESTINATION "${DOCDIR}")
|
||||||
install(FILES "multicraft.conf.example" DESTINATION "${EXAMPLE_CONF_DIR}")
|
install(FILES "blockcolor.conf.example" DESTINATION "${EXAMPLE_CONF_DIR}")
|
||||||
|
|
||||||
if(UNIX AND NOT APPLE)
|
if(UNIX AND NOT APPLE)
|
||||||
install(FILES "doc/MultiCraft.6" "doc/MultiCraftServer.6" DESTINATION "${MANDIR}/man6")
|
install(FILES "doc/BlockColor.6" "doc/BlockColorServer.6" DESTINATION "${MANDIR}/man6")
|
||||||
install(FILES "misc/MultiCraft.desktop" DESTINATION "${XDG_APPS_DIR}")
|
install(FILES "misc/BlockColor.desktop" DESTINATION "${XDG_APPS_DIR}")
|
||||||
install(FILES "misc/MultiCraft.appdata.xml" DESTINATION "${APPDATADIR}")
|
install(FILES "misc/BlockColor.appdata.xml" DESTINATION "${APPDATADIR}")
|
||||||
install(FILES "misc/MultiCraft.svg" DESTINATION "${ICONDIR}/hicolor/scalable/apps")
|
install(FILES "misc/BlockColor.svg" DESTINATION "${ICONDIR}/hicolor/scalable/apps")
|
||||||
install(FILES "misc/MultiCraft-xorg-icon-128.png"
|
install(FILES "misc/BlockColor-xorg-icon-128.png"
|
||||||
DESTINATION "${ICONDIR}/hicolor/128x128/apps"
|
DESTINATION "${ICONDIR}/hicolor/128x128/apps"
|
||||||
RENAME "MultiCraft.png")
|
RENAME "BlockColor.png")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(APPLE)
|
if(APPLE)
|
||||||
install(FILES "misc/MultiCraft-icon.icns" DESTINATION "${SHAREDIR}")
|
install(FILES "misc/BlockColor-icon.icns" DESTINATION "${SHAREDIR}")
|
||||||
install(FILES "misc/Info.plist" DESTINATION "${BUNDLE_PATH}/Contents")
|
install(FILES "misc/Info.plist" DESTINATION "${BUNDLE_PATH}/Contents")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
@ -202,12 +202,12 @@ add_subdirectory(src)
|
||||||
|
|
||||||
# CPack
|
# CPack
|
||||||
|
|
||||||
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "An Minecraft inspired game")
|
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "A Sandbox Creative Game with 8 Colors")
|
||||||
set(CPACK_PACKAGE_VERSION_MAJOR ${VERSION_MAJOR})
|
set(CPACK_PACKAGE_VERSION_MAJOR ${VERSION_MAJOR})
|
||||||
set(CPACK_PACKAGE_VERSION_MINOR ${VERSION_MINOR})
|
set(CPACK_PACKAGE_VERSION_MINOR ${VERSION_MINOR})
|
||||||
set(CPACK_PACKAGE_VERSION_PATCH ${VERSION_PATCH})
|
set(CPACK_PACKAGE_VERSION_PATCH ${VERSION_PATCH})
|
||||||
set(CPACK_PACKAGE_VENDOR "MoNTE48")
|
set(CPACK_PACKAGE_VENDOR "MrChiantos")
|
||||||
set(CPACK_PACKAGE_CONTACT "MoNTE48@mail.ua")
|
set(CPACK_PACKAGE_CONTACT "julienetnel@gmail.com")
|
||||||
|
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
if(CMAKE_SIZEOF_VOID_P EQUAL 8)
|
if(CMAKE_SIZEOF_VOID_P EQUAL 8)
|
||||||
|
|
13
README.md
|
@ -1,16 +1,17 @@
|
||||||
MultiCraft Open Source Project
|
Blockcolor Open Source Project
|
||||||
==============================
|
==============================
|
||||||
|
|
||||||
MultiCraft is an Open Source sandbox game inspired by [Minecraft](https://minecraft.net/).
|
Blockcolor is an Open Source sandbox creative game with 8 Colors. [Blockcolor.net(https://blockcolor.net/).
|
||||||
|
|
||||||
MultiCraft is based on the Minetest project, which is developed by a [number of contributors](https://github.com/minetest/minetest/graphs/contributors).
|
Blockcolor is based on Multicraft/Minetest projects.
|
||||||
|
|
||||||
Copyright © 2014-2019 Maksim Gamarnik [MoNTE48] <MoNTE48@mail.ua> & MultiCraft Development Team.
|
Copyright © 2018-2019 - MrChiantos & BlockColor Community.
|
||||||
|
|
||||||
The engine and the game is licensed under LGPLv3 (or higher). Resources games licensed under CC-BY-SA 3.0, unless otherwise stated.
|
The engine and the game is licensed under LGPLv3 (or higher). Resources games licensed under CC-BY-SA 3.0, unless otherwise stated.
|
||||||
|
|
||||||
You can help in the development. But you should always publish your source code after any changes.
|
You can help in the development. But you should always publish your source code after any changes.
|
||||||
Before any use of the MultiCraft source code or any part of it, you should be familiar with [LGPL-3.0](doc/LGPL-3.0.md) and [Other License.txt](doc/Other%20License.md)
|
Before any use of the blockcolor source code or any part of it, you should be familiar with [LGPL-3.0](doc/LGPL-3.0.md) and [Other License.txt](doc/Other%20License.md)
|
||||||
|
|
||||||
|
Any code that you push to this repository is automatically licensed as LGPLv3 (or higher) and belongs blockcolor Project and/or the owner of the project without exception.
|
||||||
|
|
||||||
Any code that you push to this repository is automatically licensed as LGPLv3 (or higher) and belongs MultiCraft Project and/or the owner of the project without exception.
|
|
||||||
Adding code under another license is possible only by agreement with the project owner and the creation of appropriate notes.
|
Adding code under another license is possible only by agreement with the project owner and the creation of appropriate notes.
|
|
@ -2,6 +2,6 @@ Instructions:
|
||||||
1) on Linux: sudo apt install unzip zip gettext cmake p7zip-full
|
1) on Linux: sudo apt install unzip zip gettext cmake p7zip-full
|
||||||
2) on Windows: install DesktopAppConverter and the Windows 10 SDK
|
2) on Windows: install DesktopAppConverter and the Windows 10 SDK
|
||||||
3) Run build.sh to create the ZIP file
|
3) Run build.sh to create the ZIP file
|
||||||
4) Transfer multicraft-windows.zip to Windows and extract it
|
4) Transfer blockcolor-windows.zip to Windows and extract it
|
||||||
5) Edit the settings in the .bat file
|
5) Edit the settings in the .bat file
|
||||||
6) Run the .bat file as Administrator to generate an Appx package
|
6) Run the .bat file as Administrator to generate an Appx package
|
|
@ -18,7 +18,7 @@ export PATH="$mingw/bin:$PATH"
|
||||||
EXISTING_DIR=$PWD/../.. \
|
EXISTING_DIR=$PWD/../.. \
|
||||||
./buildwin${bit}.sh /tmp/build${bit}
|
./buildwin${bit}.sh /tmp/build${bit}
|
||||||
|
|
||||||
cd /tmp/build${bit}/MultiCraft/_build/_CPack_Packages/*/ZIP/
|
cd /tmp/build${bit}/BlockColor/_build/_CPack_Packages/*/ZIP/
|
||||||
rm *.zip; dir=$(echo *)
|
rm *.zip; dir=$(echo *)
|
||||||
if [ $bit -eq 64 ]; then
|
if [ $bit -eq 64 ]; then
|
||||||
base=$mingw/x86_64-w64-mingw32/bin
|
base=$mingw/x86_64-w64-mingw32/bin
|
||||||
|
@ -27,6 +27,6 @@ else
|
||||||
fi
|
fi
|
||||||
cp -pv $base/lib{gcc,stdc++,winpthread}*.dll $dir/bin/
|
cp -pv $base/lib{gcc,stdc++,winpthread}*.dll $dir/bin/
|
||||||
|
|
||||||
rm -f $OLDPWD/multicraft-windows.zip
|
rm -f $OLDPWD/blockcolor-windows.zip
|
||||||
zip -r $OLDPWD/multicraft-windows.zip $dir
|
zip -r $OLDPWD/blockcolor-windows.zip $dir
|
||||||
echo "Done"
|
echo "Done"
|
||||||
|
|
|
@ -69,10 +69,10 @@ cd $libdir
|
||||||
|
|
||||||
# Get the source
|
# Get the source
|
||||||
cd $builddir
|
cd $builddir
|
||||||
[ -d MultiCraft ] || ln -s "$EXISTING_DIR" MultiCraft
|
[ -d BlockColor ] || ln -s "$EXISTING_DIR" BlockColor
|
||||||
|
|
||||||
# Build the thing
|
# Build the thing
|
||||||
cd MultiCraft
|
cd BlockColor
|
||||||
[ -d _build ] && rm -Rf _build/
|
[ -d _build ] && rm -Rf _build/
|
||||||
mkdir _build
|
mkdir _build
|
||||||
cd _build
|
cd _build
|
||||||
|
|
|
@ -70,10 +70,10 @@ cd $libdir
|
||||||
|
|
||||||
# Get the source
|
# Get the source
|
||||||
cd $builddir
|
cd $builddir
|
||||||
[ -d MultiCraft ] || ln -s "$EXISTING_DIR" MultiCraft
|
[ -d BlockColor ] || ln -s "$EXISTING_DIR" BlockColor
|
||||||
|
|
||||||
# Build the thing
|
# Build the thing
|
||||||
cd MultiCraft
|
cd BlockColor
|
||||||
[ -d _build ] && rm -Rf _build/
|
[ -d _build ] && rm -Rf _build/
|
||||||
mkdir _build
|
mkdir _build
|
||||||
cd _build
|
cd _build
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
@echo off
|
@echo off
|
||||||
|
|
||||||
REM --- change these ---
|
REM --- change these ---
|
||||||
SET folderpath=C:\Users\Doge\Desktop\MultiCraft-1.1.8-dev-win32
|
SET folderpath=C:\Users\Doge\Desktop\BlockColor-1.1.8-dev-win32
|
||||||
SET outputpath=C:\Users\Doge\Desktop
|
SET outputpath=C:\Users\Doge\Desktop
|
||||||
SET version=1.1.8.0
|
SET version=1.1.8.0
|
||||||
SET publisher=example text
|
SET publisher=example text
|
||||||
|
@ -22,11 +22,11 @@ popd
|
||||||
echo Please wait...
|
echo Please wait...
|
||||||
powershell -NoProfile -NoLogo -ExecutionPolicy Bypass^
|
powershell -NoProfile -NoLogo -ExecutionPolicy Bypass^
|
||||||
-File "%ProgramFiles%\WindowsApps\%appname%\DesktopAppConverter.ps1"^
|
-File "%ProgramFiles%\WindowsApps\%appname%\DesktopAppConverter.ps1"^
|
||||||
-Installer "%folderpath%" -AppExecutable MultiCraft.exe^
|
-Installer "%folderpath%" -AppExecutable BlockColor.exe^
|
||||||
-Destination "%outputpath%" -PackageName MultiCraft^
|
-Destination "%outputpath%" -PackageName BlockColor^
|
||||||
-Publisher "CN=%publisher%" -Version %version%
|
-Publisher "CN=%publisher%" -Version %version%
|
||||||
"%ProgramFiles(x86)%\Windows Kits\10\bin\%sdkver%\x64\MakeAppx.exe"^
|
"%ProgramFiles(x86)%\Windows Kits\10\bin\%sdkver%\x64\MakeAppx.exe"^
|
||||||
pack /l^
|
pack /l^
|
||||||
/d "%outputpath%\MultiCraft\PackageFiles" /p "%outputpath%\MultiCraft.appx"
|
/d "%outputpath%\BlockColor\PackageFiles" /p "%outputpath%\BlockColor.appx"
|
||||||
|
|
||||||
pause
|
pause
|
||||||
|
|
|
@ -598,7 +598,7 @@ $(ASSETS_TIMESTAMP) : $(IRRLICHT_LIB)
|
||||||
touch ${IRRLICHT_DIR}/media/timestamp; \
|
touch ${IRRLICHT_DIR}/media/timestamp; \
|
||||||
touch ${ASSETS_TIMESTAMP}; \
|
touch ${ASSETS_TIMESTAMP}; \
|
||||||
fi; \
|
fi; \
|
||||||
if [ ${PROJ_ROOT}/multicraft.conf.example -nt ${ASSETS_TIMESTAMP} ] ; then \
|
if [ ${PROJ_ROOT}/blockcolor.conf.example -nt ${ASSETS_TIMESTAMP} ] ; then \
|
||||||
echo "conf changed"; \
|
echo "conf changed"; \
|
||||||
touch ${ASSETS_TIMESTAMP}; \
|
touch ${ASSETS_TIMESTAMP}; \
|
||||||
fi; \
|
fi; \
|
||||||
|
@ -672,16 +672,16 @@ assets : $(ASSETS_TIMESTAMP)
|
||||||
if [ $$REFRESH -ne 0 ] ; then \
|
if [ $$REFRESH -ne 0 ] ; then \
|
||||||
echo "assets changed, refreshing..."; \
|
echo "assets changed, refreshing..."; \
|
||||||
$(MAKE) clean_assets; \
|
$(MAKE) clean_assets; \
|
||||||
mkdir -p ${APP_ROOT}/assets/MultiCraft; \
|
mkdir -p ${APP_ROOT}/assets/BlockColor; \
|
||||||
cp -r ${PROJ_ROOT}/builtin ${APP_ROOT}/assets/MultiCraft; \
|
cp -r ${PROJ_ROOT}/builtin ${APP_ROOT}/assets/BlockColor; \
|
||||||
mkdir ${APP_ROOT}/assets/MultiCraft/fonts; \
|
mkdir ${APP_ROOT}/assets/BlockColor/fonts; \
|
||||||
cp -r ${PROJ_ROOT}/fonts/retrovillenc.ttf ${APP_ROOT}/assets/MultiCraft/fonts/; \
|
cp -r ${PROJ_ROOT}/fonts/retrovillenc.ttf ${APP_ROOT}/assets/BlockColor/fonts/; \
|
||||||
cp -r ${PROJ_ROOT}/games ${APP_ROOT}/assets/MultiCraft; \
|
cp -r ${PROJ_ROOT}/games ${APP_ROOT}/assets/BlockColor; \
|
||||||
mkdir -p ${APP_ROOT}/assets/MultiCraft/locale; \
|
mkdir -p ${APP_ROOT}/assets/BlockColor/locale; \
|
||||||
pushd ${PROJ_ROOT}/po; \
|
pushd ${PROJ_ROOT}/po; \
|
||||||
for lang in *; do \
|
for lang in *; do \
|
||||||
[ $${#lang} -ne 2 ] && continue; \
|
[ $${#lang} -ne 2 ] && continue; \
|
||||||
MOPATH=${APP_ROOT}/assets/MultiCraft/locale/$$lang/LC_MESSAGES; \
|
MOPATH=${APP_ROOT}/assets/BlockColor/locale/$$lang/LC_MESSAGES; \
|
||||||
mkdir -p $$MOPATH; \
|
mkdir -p $$MOPATH; \
|
||||||
pushd $$lang; \
|
pushd $$lang; \
|
||||||
for fn in *.po; do \
|
for fn in *.po; do \
|
||||||
|
@ -691,8 +691,8 @@ assets : $(ASSETS_TIMESTAMP)
|
||||||
popd; \
|
popd; \
|
||||||
done; \
|
done; \
|
||||||
popd; \
|
popd; \
|
||||||
cp -r ${PROJ_ROOT}/textures ${APP_ROOT}/assets/MultiCraft; \
|
cp -r ${PROJ_ROOT}/textures ${APP_ROOT}/assets/BlockColor; \
|
||||||
cp -r ${PROJ_ROOT}/worlds ${APP_ROOT}/assets/MultiCraft; \
|
cp -r ${PROJ_ROOT}/worlds ${APP_ROOT}/assets/BlockColor; \
|
||||||
cd ${APP_ROOT}/assets || exit 1; \
|
cd ${APP_ROOT}/assets || exit 1; \
|
||||||
find . -name "timestamp" -exec rm {} \; ; \
|
find . -name "timestamp" -exec rm {} \; ; \
|
||||||
find . -name "*.blend" -exec rm {} \; ; \
|
find . -name "*.blend" -exec rm {} \; ; \
|
||||||
|
@ -700,7 +700,7 @@ assets : $(ASSETS_TIMESTAMP)
|
||||||
find . -type d -path "*.git" -exec rm -rf {} \; ; \
|
find . -type d -path "*.git" -exec rm -rf {} \; ; \
|
||||||
find . -type d -path "*.svn" -exec rm -rf {} \; ; \
|
find . -type d -path "*.svn" -exec rm -rf {} \; ; \
|
||||||
find . -type f -path "*.gitignore" -exec rm -rf {} \; ; \
|
find . -type f -path "*.gitignore" -exec rm -rf {} \; ; \
|
||||||
cd MultiCraft; \
|
cd BlockColor; \
|
||||||
ls -R | grep ":$$" | sed -e 's/:$$//' -e 's/\.//' -e 's/^\///' > ../index.txt; \
|
ls -R | grep ":$$" | sed -e 's/:$$//' -e 's/\.//' -e 's/^\///' > ../index.txt; \
|
||||||
find -L . | cut -c 3- > ../filelist.txt; \
|
find -L . | cut -c 3- > ../filelist.txt; \
|
||||||
echo "Creating worlds.zip"; \
|
echo "Creating worlds.zip"; \
|
||||||
|
@ -728,14 +728,14 @@ apk: local.properties $(IRRLICHT_LIB) $(CURL_LIB) $(LEVELDB_LIB) $(LUAJIT_LIB)
|
||||||
fi; \
|
fi; \
|
||||||
export BUILD_TYPE_C=$$(echo "$${BUILD_TYPE}" | sed 's/./\U&/') && \
|
export BUILD_TYPE_C=$$(echo "$${BUILD_TYPE}" | sed 's/./\U&/') && \
|
||||||
./gradlew assemble$$BUILD_TYPE_C && \
|
./gradlew assemble$$BUILD_TYPE_C && \
|
||||||
echo "APK stored at: build/outputs/apk/MultiCraft-$$BUILD_TYPE.apk" && \
|
echo "APK stored at: build/outputs/apk/BlockColor-$$BUILD_TYPE.apk" && \
|
||||||
echo "You can install it with \'make install_$$BUILD_TYPE\'"
|
echo "You can install it with \'make install_$$BUILD_TYPE\'"
|
||||||
|
|
||||||
install_debug:
|
install_debug:
|
||||||
${ANDROID_SDK}/platform-tools/adb install -r build/outputs/apk/MultiCraft-debug.apk
|
${ANDROID_SDK}/platform-tools/adb install -r build/outputs/apk/BlockColor-debug.apk
|
||||||
|
|
||||||
install_release:
|
install_release:
|
||||||
${ANDROID_SDK}/platform-tools/adb install -r build/outputs/apk/MultiCraft-release.apk
|
${ANDROID_SDK}/platform-tools/adb install -r build/outputs/apk/BlockColor-release.apk
|
||||||
|
|
||||||
prep_srcdir :
|
prep_srcdir :
|
||||||
@if [ ! -e ${ANDR_ROOT}/jni/src ]; then \
|
@if [ ! -e ${ANDR_ROOT}/jni/src ]; then \
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
MultiCraft Android version
|
BlockColor Android version
|
||||||
=====================
|
=====================
|
||||||
|
|
||||||
Controls
|
Controls
|
||||||
|
@ -32,8 +32,8 @@ When a menu or inventory is displayed:
|
||||||
|
|
||||||
Special settings
|
Special settings
|
||||||
----------------
|
----------------
|
||||||
There are some settings especially useful for Android users. MultiCraft's config
|
There are some settings especially useful for Android users. BlockColor's config
|
||||||
file can usually be found at /sdcard/Android/data/mobi.MultiCraft/files.
|
file can usually be found at /sdcard/Android/data/mobi.BlockColor/files.
|
||||||
|
|
||||||
* gui_scaling: this is a user-specified scaling factor for the GUI- In case
|
* gui_scaling: this is a user-specified scaling factor for the GUI- In case
|
||||||
main menu is too big or small on your device, try changing this
|
main menu is too big or small on your device, try changing this
|
||||||
|
@ -54,9 +54,9 @@ Not all issues are fixed by now:
|
||||||
Requirements
|
Requirements
|
||||||
------------
|
------------
|
||||||
|
|
||||||
In order to build, your PC has to be set up to build MultiCraft in the usual
|
In order to build, your PC has to be set up to build BlockColor in the usual
|
||||||
manner (see the regular MultiCraft documentation for how to get this done).
|
manner (see the regular BlockColor documentation for how to get this done).
|
||||||
In addition to what is required for MultiCraft in general, you will need the
|
In addition to what is required for BlockColor in general, you will need the
|
||||||
following software packages. The version number in parenthesis denotes the
|
following software packages. The version number in parenthesis denotes the
|
||||||
version that was tested at the time this README was drafted; newer/older
|
version that was tested at the time this README was drafted; newer/older
|
||||||
versions may or may not work.
|
versions may or may not work.
|
||||||
|
@ -80,7 +80,7 @@ Debug build:
|
||||||
* Wait for build to finish
|
* Wait for build to finish
|
||||||
|
|
||||||
After the build is finished, the resulting apk can be fond in
|
After the build is finished, the resulting apk can be fond in
|
||||||
build/android/bin/. It will be called MultiCraft-debug.apk
|
build/android/bin/. It will be called BlockColor-debug.apk
|
||||||
|
|
||||||
Release build:
|
Release build:
|
||||||
|
|
||||||
|
@ -93,12 +93,12 @@ Release build:
|
||||||
file "ant.properties" there. Add following lines to that file:
|
file "ant.properties" there. Add following lines to that file:
|
||||||
|
|
||||||
> key.store=<path to your keystore>
|
> key.store=<path to your keystore>
|
||||||
> key.alias=MultiCraft
|
> key.alias=BlockColor
|
||||||
|
|
||||||
* Execute "make release"
|
* Execute "make release"
|
||||||
* Enter your keystore as well as your Mintest key password once asked. Be
|
* Enter your keystore as well as your Mintest key password once asked. Be
|
||||||
careful it's shown on console in clear text!
|
careful it's shown on console in clear text!
|
||||||
* The result can be found at "bin/MultiCraft-release.apk"
|
* The result can be found at "bin/BlockColor-release.apk"
|
||||||
|
|
||||||
Other things that may be nice to know
|
Other things that may be nice to know
|
||||||
------------
|
------------
|
||||||
|
|
|
@ -26,7 +26,7 @@ android {
|
||||||
buildToolsVersion "29.0.0"
|
buildToolsVersion "29.0.0"
|
||||||
|
|
||||||
defaultConfig {
|
defaultConfig {
|
||||||
applicationId 'com.multicraft.game'
|
applicationId 'net.blockcolor.game'
|
||||||
minSdkVersion 16
|
minSdkVersion 16
|
||||||
targetSdkVersion 29
|
targetSdkVersion 29
|
||||||
versionCode 1
|
versionCode 1
|
||||||
|
|
|
@ -38,7 +38,7 @@ LOCAL_SRC_FILES := deps/luajit/src/libluajit.a
|
||||||
include $(PREBUILT_STATIC_LIBRARY)
|
include $(PREBUILT_STATIC_LIBRARY)
|
||||||
|
|
||||||
include $(CLEAR_VARS)
|
include $(CLEAR_VARS)
|
||||||
LOCAL_MODULE := MultiCraft
|
LOCAL_MODULE := BlockColor
|
||||||
|
|
||||||
LOCAL_CFLAGS += \
|
LOCAL_CFLAGS += \
|
||||||
-DJSONCPP_NO_LOCALE_SUPPORT \
|
-DJSONCPP_NO_LOCALE_SUPPORT \
|
||||||
|
|
|
@ -2,7 +2,7 @@ APP_PLATFORM := ${APP_PLATFORM}
|
||||||
APP_ABI := ${TARGET_ABI}
|
APP_ABI := ${TARGET_ABI}
|
||||||
APP_STL := ${APP_STL}
|
APP_STL := ${APP_STL}
|
||||||
NDK_TOOLCHAIN_VERSION := ${COMPILER_VERSION}
|
NDK_TOOLCHAIN_VERSION := ${COMPILER_VERSION}
|
||||||
APP_MODULES := MultiCraft
|
APP_MODULES := BlockColor
|
||||||
|
|
||||||
APP_CPPFLAGS := -Ofast -fvisibility=hidden -fpic -fexceptions -Wno-deprecated-declarations
|
APP_CPPFLAGS := -Ofast -fvisibility=hidden -fpic -fexceptions -Wno-deprecated-declarations
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
xmlns:tools="http://schemas.android.com/tools"
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
package="com.multicraft.game"
|
package="net.blockcolor.game"
|
||||||
android:installLocation="auto"
|
android:installLocation="auto"
|
||||||
android:versionName="@string/ver">
|
android:versionName="@string/ver">
|
||||||
|
|
||||||
|
@ -37,7 +37,7 @@
|
||||||
android:required="false" />
|
android:required="false" />
|
||||||
|
|
||||||
<activity
|
<activity
|
||||||
android:name="com.multicraft.game.MainActivity"
|
android:name="net.blockcolor.game.MainActivity"
|
||||||
android:configChanges="orientation|keyboardHidden|navigation|screenSize"
|
android:configChanges="orientation|keyboardHidden|navigation|screenSize"
|
||||||
android:screenOrientation="sensorLandscape"
|
android:screenOrientation="sensorLandscape"
|
||||||
android:theme="@style/AppTheme">
|
android:theme="@style/AppTheme">
|
||||||
|
@ -47,7 +47,7 @@
|
||||||
</intent-filter>
|
</intent-filter>
|
||||||
</activity>
|
</activity>
|
||||||
<activity
|
<activity
|
||||||
android:name="com.multicraft.game.GameActivity"
|
android:name="net.blockcolor.game.GameActivity"
|
||||||
android:configChanges="orientation|keyboard|keyboardHidden|navigation|screenSize|smallestScreenSize"
|
android:configChanges="orientation|keyboard|keyboardHidden|navigation|screenSize|smallestScreenSize"
|
||||||
android:hardwareAccelerated="true"
|
android:hardwareAccelerated="true"
|
||||||
android:launchMode="singleTask"
|
android:launchMode="singleTask"
|
||||||
|
@ -55,19 +55,19 @@
|
||||||
android:theme="@style/AppTheme">
|
android:theme="@style/AppTheme">
|
||||||
<meta-data
|
<meta-data
|
||||||
android:name="android.app.lib_name"
|
android:name="android.app.lib_name"
|
||||||
android:value="MultiCraft" />
|
android:value="BlockColor" />
|
||||||
|
|
||||||
<intent-filter>
|
<intent-filter>
|
||||||
<action android:name="android.intent.action.MAIN" />
|
<action android:name="android.intent.action.MAIN" />
|
||||||
</intent-filter>
|
</intent-filter>
|
||||||
</activity>
|
</activity>
|
||||||
<activity
|
<activity
|
||||||
android:name="com.multicraft.game.InputDialogActivity"
|
android:name="net.blockcolor.game.InputDialogActivity"
|
||||||
android:theme="@style/Theme.Transparent"
|
android:theme="@style/Theme.Transparent"
|
||||||
android:windowSoftInputMode="stateAlwaysHidden" />
|
android:windowSoftInputMode="stateAlwaysHidden" />
|
||||||
|
|
||||||
<service
|
<service
|
||||||
android:name="com.multicraft.game.UnzipService"
|
android:name="net.blockcolor.game.UnzipService"
|
||||||
android:enabled="true"
|
android:enabled="true"
|
||||||
android:exported="false" />
|
android:exported="false" />
|
||||||
</application>
|
</application>
|
||||||
|
|
|
@ -0,0 +1,2 @@
|
||||||
|
[.ShellClassInfo]
|
||||||
|
LocalizedResourceName=blockcolor
|
|
@ -1,4 +1,4 @@
|
||||||
package com.multicraft.game;
|
package net.blockcolor.game;
|
||||||
|
|
||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
import android.app.AlertDialog;
|
import android.app.AlertDialog;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package com.multicraft.game;
|
package net.blockcolor.game;
|
||||||
|
|
||||||
public interface CallBackListener {
|
public interface CallBackListener {
|
||||||
void updateViews(int text, int textVisibility, int progressVisibility);
|
void updateViews(int text, int textVisibility, int progressVisibility);
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package com.multicraft.game;
|
package net.blockcolor.game;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.os.AsyncTask;
|
import android.os.AsyncTask;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package com.multicraft.game;
|
package net.blockcolor.game;
|
||||||
|
|
||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
import android.app.AlarmManager;
|
import android.app.AlarmManager;
|
||||||
|
@ -16,7 +16,7 @@ import java.io.InputStream;
|
||||||
import java.io.OutputStream;
|
import java.io.OutputStream;
|
||||||
import java.lang.ref.WeakReference;
|
import java.lang.ref.WeakReference;
|
||||||
|
|
||||||
import static com.multicraft.game.MainActivity.unzipLocation;
|
import static net.blockcolor.game.MainActivity.unzipLocation;
|
||||||
|
|
||||||
public class CopyZipTask extends AsyncTask<String, Void, String[]> implements DialogsCallback {
|
public class CopyZipTask extends AsyncTask<String, Void, String[]> implements DialogsCallback {
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package com.multicraft.game;
|
package net.blockcolor.game;
|
||||||
|
|
||||||
import android.os.AsyncTask;
|
import android.os.AsyncTask;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package com.multicraft.game;
|
package net.blockcolor.game;
|
||||||
|
|
||||||
public interface DialogsCallback {
|
public interface DialogsCallback {
|
||||||
void onPositive(String source);
|
void onPositive(String source);
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package com.multicraft.game;
|
package net.blockcolor.game;
|
||||||
|
|
||||||
import android.annotation.SuppressLint;
|
import android.annotation.SuppressLint;
|
||||||
import android.app.ActivityManager;
|
import android.app.ActivityManager;
|
||||||
|
@ -14,22 +14,22 @@ import android.view.WindowManager;
|
||||||
|
|
||||||
import com.crashlytics.android.Crashlytics;
|
import com.crashlytics.android.Crashlytics;
|
||||||
|
|
||||||
/*import static com.multicraft.game.AdManager.initAd;
|
/*import static net.blockcolor.game.AdManager.initAd;
|
||||||
import static com.multicraft.game.AdManager.setAdsCallback;
|
import static net.blockcolor.game.AdManager.setAdsCallback;
|
||||||
import static com.multicraft.game.AdManager.startAd;
|
import static net.blockcolor.game.AdManager.startAd;
|
||||||
import static com.multicraft.game.AdManager.stopAd;*/
|
import static net.blockcolor.game.AdManager.stopAd;*/
|
||||||
|
|
||||||
public class GameActivity extends NativeActivity {
|
public class GameActivity extends NativeActivity {
|
||||||
static {
|
static {
|
||||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
|
||||||
if (TextUtils.join(", ", Build.SUPPORTED_ABIS).contains("64")) {
|
if (TextUtils.join(", ", Build.SUPPORTED_ABIS).contains("64")) {
|
||||||
//System.loadLibrary("c++_shared"); // uncomment when upgrading to Clang
|
//System.loadLibrary("c++_shared"); // uncomment when upgrading to Clang
|
||||||
System.loadLibrary("MultiCraft");
|
System.loadLibrary("BlockColor");
|
||||||
} else {
|
} else {
|
||||||
System.loadLibrary("MultiCraft");
|
System.loadLibrary("BlockColor");
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
System.loadLibrary("MultiCraft");
|
System.loadLibrary("BlockColor");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package com.multicraft.game;
|
package net.blockcolor.game;
|
||||||
|
|
||||||
import android.annotation.SuppressLint;
|
import android.annotation.SuppressLint;
|
||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package com.multicraft.game;
|
package net.blockcolor.game;
|
||||||
|
|
||||||
import android.annotation.SuppressLint;
|
import android.annotation.SuppressLint;
|
||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
|
@ -47,11 +47,11 @@ import java.util.List;
|
||||||
|
|
||||||
import static android.Manifest.permission.ACCESS_COARSE_LOCATION;
|
import static android.Manifest.permission.ACCESS_COARSE_LOCATION;
|
||||||
import static android.Manifest.permission.WRITE_EXTERNAL_STORAGE;
|
import static android.Manifest.permission.WRITE_EXTERNAL_STORAGE;
|
||||||
import static com.multicraft.game.PreferencesHelper.TAG_BUILD_NUMBER;
|
import static net.blockcolor.game.PreferencesHelper.TAG_BUILD_NUMBER;
|
||||||
import static com.multicraft.game.PreferencesHelper.TAG_CONSENT_ASKED;
|
import static net.blockcolor.game.PreferencesHelper.TAG_CONSENT_ASKED;
|
||||||
import static com.multicraft.game.PreferencesHelper.TAG_COPY_WORLDS;
|
import static net.blockcolor.game.PreferencesHelper.TAG_COPY_WORLDS;
|
||||||
import static com.multicraft.game.PreferencesHelper.TAG_LAUNCH_TIMES;
|
import static net.blockcolor.game.PreferencesHelper.TAG_LAUNCH_TIMES;
|
||||||
import static com.multicraft.game.PreferencesHelper.TAG_SHORTCUT_CREATED;
|
import static net.blockcolor.game.PreferencesHelper.TAG_SHORTCUT_CREATED;
|
||||||
|
|
||||||
public class MainActivity extends Activity implements WVersionManager.ActivityListener, CallBackListener, DialogsCallback {
|
public class MainActivity extends Activity implements WVersionManager.ActivityListener, CallBackListener, DialogsCallback {
|
||||||
public final static int REQUEST_CODE = 104;
|
public final static int REQUEST_CODE = 104;
|
||||||
|
@ -68,9 +68,9 @@ public class MainActivity extends Activity implements WVersionManager.ActivityLi
|
||||||
"HU", "IE", "IT", "LV", "LT", "LU",
|
"HU", "IE", "IT", "LV", "LT", "LU",
|
||||||
"MT", "NL", "PL", "PT", "RO", "SK",
|
"MT", "NL", "PL", "PT", "RO", "SK",
|
||||||
"SI", "ES", "SE", "GB", "IS", "LI", "NO"};
|
"SI", "ES", "SE", "GB", "IS", "LI", "NO"};
|
||||||
private static String dataFolder = "/Android/data/com.multicraft.game/files/";
|
private static String dataFolder = "/Android/data/net.blockcolor.game/files/";
|
||||||
public static String unzipLocation = EXTERNAL_STORAGE + dataFolder;
|
public static String unzipLocation = EXTERNAL_STORAGE + dataFolder;
|
||||||
private static String worldPath = EXTERNAL_STORAGE + "/Android/data/mobi.MultiCraft/files/worlds";
|
private static String worldPath = EXTERNAL_STORAGE + "/Android/data/mobi.BlockColor/files/worlds";
|
||||||
private int height, width;
|
private int height, width;
|
||||||
private boolean consent;
|
private boolean consent;
|
||||||
private ProgressBar mProgressBar;
|
private ProgressBar mProgressBar;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package com.multicraft.game;
|
package net.blockcolor.game;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.SharedPreferences;
|
import android.content.SharedPreferences;
|
||||||
|
@ -13,7 +13,7 @@ class PreferencesHelper {
|
||||||
static final String RV_LOADED = "rewardedVideoLoaded";
|
static final String RV_LOADED = "rewardedVideoLoaded";
|
||||||
static final String ADS_DELAY = "adsDelay";
|
static final String ADS_DELAY = "adsDelay";
|
||||||
static final String ADS_REPEAT = "adsRepeat";
|
static final String ADS_REPEAT = "adsRepeat";
|
||||||
private static final String SETTINGS = "MultiCraftSettings";
|
private static final String SETTINGS = "BlockColorSettings";
|
||||||
|
|
||||||
private static PreferencesHelper instance;
|
private static PreferencesHelper instance;
|
||||||
private static SharedPreferences sharedPreferences;
|
private static SharedPreferences sharedPreferences;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package com.multicraft.game;
|
package net.blockcolor.game;
|
||||||
|
|
||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
import android.app.Dialog;
|
import android.app.Dialog;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package com.multicraft.game;
|
package net.blockcolor.game;
|
||||||
|
|
||||||
class Transliteration {
|
class Transliteration {
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package com.multicraft.game;
|
package net.blockcolor.game;
|
||||||
|
|
||||||
import android.app.IntentService;
|
import android.app.IntentService;
|
||||||
import android.app.Notification;
|
import android.app.Notification;
|
||||||
|
@ -20,7 +20,7 @@ import java.util.zip.ZipFile;
|
||||||
import java.util.zip.ZipInputStream;
|
import java.util.zip.ZipInputStream;
|
||||||
|
|
||||||
public class UnzipService extends IntentService {
|
public class UnzipService extends IntentService {
|
||||||
public static final String ACTION_UPDATE = "mobi.MultiCraft.UPDATE";
|
public static final String ACTION_UPDATE = "mobi.BlockColor.UPDATE";
|
||||||
public static final String EXTRA_KEY_IN_FILE = "file";
|
public static final String EXTRA_KEY_IN_FILE = "file";
|
||||||
public static final String EXTRA_KEY_IN_LOCATION = "location";
|
public static final String EXTRA_KEY_IN_LOCATION = "location";
|
||||||
public static final String ACTION_PROGRESS = "progress";
|
public static final String ACTION_PROGRESS = "progress";
|
||||||
|
@ -28,7 +28,7 @@ public class UnzipService extends IntentService {
|
||||||
private int id = 1;
|
private int id = 1;
|
||||||
|
|
||||||
public UnzipService() {
|
public UnzipService() {
|
||||||
super("com.multicraft.game.UnzipService");
|
super("net.blockcolor.game.UnzipService");
|
||||||
}
|
}
|
||||||
|
|
||||||
private void isDir(String dir, String unzipLocation) {
|
private void isDir(String dir, String unzipLocation) {
|
||||||
|
@ -49,9 +49,9 @@ public class UnzipService extends IntentService {
|
||||||
|
|
||||||
private void createNotification() {
|
private void createNotification() {
|
||||||
// There are hardcoding only for show it's just strings
|
// There are hardcoding only for show it's just strings
|
||||||
String name = "mobi.MultiCraft";
|
String name = "mobi.BlockColor";
|
||||||
String channelId = "MultiCraft channel"; // The user-visible name of the channel.
|
String channelId = "BlockColor channel"; // The user-visible name of the channel.
|
||||||
String description = "notifications from MultiCraft"; // The user-visible description of the channel.
|
String description = "notifications from BlockColor"; // The user-visible description of the channel.
|
||||||
Notification.Builder builder;
|
Notification.Builder builder;
|
||||||
if (mNotifyManager == null) {
|
if (mNotifyManager == null) {
|
||||||
mNotifyManager =
|
mNotifyManager =
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package com.multicraft.game;
|
package net.blockcolor.game;
|
||||||
|
|
||||||
import android.annotation.SuppressLint;
|
import android.annotation.SuppressLint;
|
||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
<!-- подготовка к запуску -->
|
<!-- подготовка к запуску -->
|
||||||
<string name="rm_old">Подготовка к обновлению…</string>
|
<string name="rm_old">Подготовка к обновлению…</string>
|
||||||
<string name="loading">Загрузка…</string>
|
<string name="loading">Загрузка…</string>
|
||||||
<string name="notification_title">Загрузка MultiCraft</string>
|
<string name="notification_title">Загрузка BlockColor</string>
|
||||||
<string name="notification_description">Осталось меньше минуты…</string>
|
<string name="notification_description">Осталось меньше минуты…</string>
|
||||||
<string name="restart">Произошла ошибка, игра будет перезапущена автоматически</string>
|
<string name="restart">Произошла ошибка, игра будет перезапущена автоматически</string>
|
||||||
<string name="no_space">Недостаточно места для записи файлов игры, пожалуйста освободите место SD карте</string>
|
<string name="no_space">Недостаточно места для записи файлов игры, пожалуйста освободите место SD карте</string>
|
||||||
|
@ -13,9 +13,9 @@
|
||||||
<string name="location">Доступ к местоположению обеспечивает Вам лучшее взаимодействие с игрой</string>
|
<string name="location">Доступ к местоположению обеспечивает Вам лучшее взаимодействие с игрой</string>
|
||||||
<string name="close_game">Закрыть игру</string>
|
<string name="close_game">Закрыть игру</string>
|
||||||
<string name="settings">Настройки</string>
|
<string name="settings">Настройки</string>
|
||||||
<string name="denied">Вы не можете использовать MultiCraft без разрешения на запись. \nПожалуйста, включите его в [Настройки] -> [Разрешения]></string>
|
<string name="denied">Вы не можете использовать BlockColor без разрешения на запись. \nПожалуйста, включите его в [Настройки] -> [Разрешения]></string>
|
||||||
<!-- диалог оценки -->
|
<!-- диалог оценки -->
|
||||||
<string name="rta_dialog_title">Оцените MultiCraft!</string>
|
<string name="rta_dialog_title">Оцените BlockColor!</string>
|
||||||
<string name="rate_title">Название</string>
|
<string name="rate_title">Название</string>
|
||||||
<string name="rate_description">Описание</string>
|
<string name="rate_description">Описание</string>
|
||||||
<string name="rate_submit">ОЦЕНИТЬ</string>
|
<string name="rate_submit">ОЦЕНИТЬ</string>
|
||||||
|
@ -28,7 +28,7 @@
|
||||||
<!-- reminder -->
|
<!-- reminder -->
|
||||||
|
|
||||||
<!-- no connection dialog -->
|
<!-- no connection dialog -->
|
||||||
<string name="conn_message">Для полноценной игры, MultiCraft требует подключение к интернету.\nВ противном случае невозможно обновление игры, а так же не доступен мультиплеер!</string>
|
<string name="conn_message">Для полноценной игры, BlockColor требует подключение к интернету.\nВ противном случае невозможно обновление игры, а так же не доступен мультиплеер!</string>
|
||||||
<string name="conn_wifi">Wi-Fi</string>
|
<string name="conn_wifi">Wi-Fi</string>
|
||||||
<string name="conn_mobile">3G/4G</string>
|
<string name="conn_mobile">3G/4G</string>
|
||||||
|
|
||||||
|
|
|
@ -1,13 +1,13 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<resources>
|
<resources>
|
||||||
|
|
||||||
<string name="app_name" translatable="false">MultiCraft</string>
|
<string name="app_name" translatable="false">BlockColor</string>
|
||||||
<string name="ver" translatable="false">1.2</string>
|
<string name="ver" translatable="false">1.2</string>
|
||||||
<!-- preparation for start -->
|
<!-- preparation for start -->
|
||||||
|
|
||||||
<string name="rm_old">Preparing to update…</string>
|
<string name="rm_old">Preparing to update…</string>
|
||||||
<string name="loading">Loading…</string>
|
<string name="loading">Loading…</string>
|
||||||
<string name="notification_title">Loading MultiCraft</string>
|
<string name="notification_title">Loading BlockColor</string>
|
||||||
<string name="notification_description">Less than 1 minute…</string>
|
<string name="notification_description">Less than 1 minute…</string>
|
||||||
<string name="restart">Unexpected issue, the game will be restarted automatically</string>
|
<string name="restart">Unexpected issue, the game will be restarted automatically</string>
|
||||||
<string name="no_space">No space left for game files, please free space on SD card</string>
|
<string name="no_space">No space left for game files, please free space on SD card</string>
|
||||||
|
@ -17,9 +17,9 @@
|
||||||
<string name="location">Location permission provide you better interaction with game</string>
|
<string name="location">Location permission provide you better interaction with game</string>
|
||||||
<string name="close_game">Close game</string>
|
<string name="close_game">Close game</string>
|
||||||
<string name="settings">App settings</string>
|
<string name="settings">App settings</string>
|
||||||
<string name="denied">You cannot use MultiCraft without storage permission. \nPlease turn on it at [Settings] -> [Permissions]></string>
|
<string name="denied">You cannot use BlockColor without storage permission. \nPlease turn on it at [Settings] -> [Permissions]></string>
|
||||||
<!-- rate input_dialog -->
|
<!-- rate input_dialog -->
|
||||||
<string name="rta_dialog_title">Please, rate MultiCraft!</string>
|
<string name="rta_dialog_title">Please, rate BlockColor!</string>
|
||||||
<string name="rate_title">Title</string>
|
<string name="rate_title">Title</string>
|
||||||
<string name="rate_description">Description</string>
|
<string name="rate_description">Description</string>
|
||||||
<string name="rate_submit">SUBMIT</string>
|
<string name="rate_submit">SUBMIT</string>
|
||||||
|
@ -33,7 +33,7 @@
|
||||||
<!-- reminder -->
|
<!-- reminder -->
|
||||||
|
|
||||||
<!-- no connection dialog -->
|
<!-- no connection dialog -->
|
||||||
<string name="conn_message">MultiCraft requires an internet connection to use all game features.\nOtherwise, you will not get updates and multiplayer will be not available!</string>
|
<string name="conn_message">BlockColor requires an internet connection to use all game features.\nOtherwise, you will not get updates and multiplayer will be not available!</string>
|
||||||
<string name="conn_wifi">Wi-Fi</string>
|
<string name="conn_wifi">Wi-Fi</string>
|
||||||
<string name="conn_mobile">Mobile Data</string>
|
<string name="conn_mobile">Mobile Data</string>
|
||||||
|
|
||||||
|
|
|
@ -2,11 +2,11 @@
|
||||||
<full-backup-content>
|
<full-backup-content>
|
||||||
<exclude
|
<exclude
|
||||||
domain="sharedpref"
|
domain="sharedpref"
|
||||||
path="MultiCraftSettings.xml" />
|
path="BlockColorSettings.xml" />
|
||||||
<exclude
|
<exclude
|
||||||
domain="sharedpref"
|
domain="sharedpref"
|
||||||
path="RateMe.xml" />
|
path="RateMe.xml" />
|
||||||
<exclude
|
<exclude
|
||||||
domain="sharedpref"
|
domain="sharedpref"
|
||||||
path="mobi.MultiCraft_preferences.xml" />
|
path="mobi.BlockColor_preferences.xml" />
|
||||||
</full-backup-content>
|
</full-backup-content>
|
||||||
|
|
|
@ -0,0 +1,2 @@
|
||||||
|
[.ShellClassInfo]
|
||||||
|
LocalizedResourceName=Blockcolor.xcodeproj
|
|
@ -38,7 +38,7 @@
|
||||||
844B495F228606B200EB60EF /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 844B495D228606B200EB60EF /* Main.storyboard */; };
|
844B495F228606B200EB60EF /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 844B495D228606B200EB60EF /* Main.storyboard */; };
|
||||||
8465A76522A7D4500095B7CA /* libintl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8465A76422A7D4500095B7CA /* libintl.cpp */; };
|
8465A76522A7D4500095B7CA /* libintl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8465A76422A7D4500095B7CA /* libintl.cpp */; };
|
||||||
849C4F86209656D3005EB041 /* ru.lproj in Resources */ = {isa = PBXBuildFile; fileRef = 849C4F85209656D2005EB041 /* ru.lproj */; };
|
849C4F86209656D3005EB041 /* ru.lproj in Resources */ = {isa = PBXBuildFile; fileRef = 849C4F85209656D2005EB041 /* ru.lproj */; };
|
||||||
EB4367AE23CAD13A43ADF4B1 /* libPods-MultiCraft.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 8758CE009FCB7E91F4C84C28 /* libPods-MultiCraft.a */; };
|
EB4367AE23CAD13A43ADF4B1 /* libPods-BlockColor.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 8758CE009FCB7E91F4C84C28 /* libPods-BlockColor.a */; };
|
||||||
F810D7052080E48100D109B8 /* en.lproj in Resources */ = {isa = PBXBuildFile; fileRef = F810D7042080E48000D109B8 /* en.lproj */; };
|
F810D7052080E48100D109B8 /* en.lproj in Resources */ = {isa = PBXBuildFile; fileRef = F810D7042080E48000D109B8 /* en.lproj */; };
|
||||||
F84D3A951DE79AB400ADE1A0 /* ads.mm in Sources */ = {isa = PBXBuildFile; fileRef = F84D3A941DE79AB400ADE1A0 /* ads.mm */; };
|
F84D3A951DE79AB400ADE1A0 /* ads.mm in Sources */ = {isa = PBXBuildFile; fileRef = F84D3A941DE79AB400ADE1A0 /* ads.mm */; };
|
||||||
F85119A71F4476FC00BFA9AF /* libcurl.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F85119A61F4476FC00BFA9AF /* libcurl.a */; };
|
F85119A71F4476FC00BFA9AF /* libcurl.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F85119A61F4476FC00BFA9AF /* libcurl.a */; };
|
||||||
|
@ -266,8 +266,8 @@
|
||||||
/* End PBXBuildFile section */
|
/* End PBXBuildFile section */
|
||||||
|
|
||||||
/* Begin PBXFileReference section */
|
/* Begin PBXFileReference section */
|
||||||
1E76DCA01B51A98F0CA4C480 /* Pods-MultiCraft.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-MultiCraft.release.xcconfig"; path = "../Pods/Target Support Files/Pods-MultiCraft/Pods-MultiCraft.release.xcconfig"; sourceTree = "<group>"; };
|
1E76DCA01B51A98F0CA4C480 /* Pods-BlockColor.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-BlockColor.release.xcconfig"; path = "../Pods/Target Support Files/Pods-BlockColor/Pods-BlockColor.release.xcconfig"; sourceTree = "<group>"; };
|
||||||
32528F14AAB9EA0E9CAB8526 /* Pods-MultiCraft.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-MultiCraft.debug.xcconfig"; path = "../Pods/Target Support Files/Pods-MultiCraft/Pods-MultiCraft.debug.xcconfig"; sourceTree = "<group>"; };
|
32528F14AAB9EA0E9CAB8526 /* Pods-BlockColor.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-BlockColor.debug.xcconfig"; path = "../Pods/Target Support Files/Pods-BlockColor/Pods-BlockColor.debug.xcconfig"; sourceTree = "<group>"; };
|
||||||
4B0F49C81E424F910003953D /* map_settings_manager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = map_settings_manager.cpp; path = ../../../../src/map_settings_manager.cpp; sourceTree = "<group>"; };
|
4B0F49C81E424F910003953D /* map_settings_manager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = map_settings_manager.cpp; path = ../../../../src/map_settings_manager.cpp; sourceTree = "<group>"; };
|
||||||
4B0F49CA1E424FAE0003953D /* reflowscan.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = reflowscan.cpp; path = ../../../../src/reflowscan.cpp; sourceTree = "<group>"; };
|
4B0F49CA1E424FAE0003953D /* reflowscan.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = reflowscan.cpp; path = ../../../../src/reflowscan.cpp; sourceTree = "<group>"; };
|
||||||
4B0F49CC1E424FC20003953D /* remoteplayer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = remoteplayer.cpp; path = ../../../../src/remoteplayer.cpp; sourceTree = "<group>"; };
|
4B0F49CC1E424FC20003953D /* remoteplayer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = remoteplayer.cpp; path = ../../../../src/remoteplayer.cpp; sourceTree = "<group>"; };
|
||||||
|
@ -324,7 +324,7 @@
|
||||||
8465A76322A7D4500095B7CA /* Util.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Util.hpp; path = ../../../../lib/intl/Util.hpp; sourceTree = "<group>"; };
|
8465A76322A7D4500095B7CA /* Util.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Util.hpp; path = ../../../../lib/intl/Util.hpp; sourceTree = "<group>"; };
|
||||||
8465A76422A7D4500095B7CA /* libintl.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = libintl.cpp; path = ../../../../lib/intl/libintl.cpp; sourceTree = "<group>"; };
|
8465A76422A7D4500095B7CA /* libintl.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = libintl.cpp; path = ../../../../lib/intl/libintl.cpp; sourceTree = "<group>"; };
|
||||||
849C4F85209656D2005EB041 /* ru.lproj */ = {isa = PBXFileReference; lastKnownFileType = folder; path = ru.lproj; sourceTree = "<group>"; };
|
849C4F85209656D2005EB041 /* ru.lproj */ = {isa = PBXFileReference; lastKnownFileType = folder; path = ru.lproj; sourceTree = "<group>"; };
|
||||||
8758CE009FCB7E91F4C84C28 /* libPods-MultiCraft.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-MultiCraft.a"; sourceTree = BUILT_PRODUCTS_DIR; };
|
8758CE009FCB7E91F4C84C28 /* libPods-BlockColor.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-BlockColor.a"; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||||
F810D7042080E48000D109B8 /* en.lproj */ = {isa = PBXFileReference; lastKnownFileType = folder; path = en.lproj; sourceTree = "<group>"; };
|
F810D7042080E48000D109B8 /* en.lproj */ = {isa = PBXFileReference; lastKnownFileType = folder; path = en.lproj; sourceTree = "<group>"; };
|
||||||
F84D3A931DE79AB400ADE1A0 /* ads.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ads.h; path = ../../Ads/ads.h; sourceTree = "<group>"; };
|
F84D3A931DE79AB400ADE1A0 /* ads.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ads.h; path = ../../Ads/ads.h; sourceTree = "<group>"; };
|
||||||
F84D3A941DE79AB400ADE1A0 /* ads.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = ads.mm; path = ../../Ads/ads.mm; sourceTree = "<group>"; };
|
F84D3A941DE79AB400ADE1A0 /* ads.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = ads.mm; path = ../../Ads/ads.mm; sourceTree = "<group>"; };
|
||||||
|
@ -332,7 +332,7 @@
|
||||||
F856B5C21F55F7EE00FE9494 /* bg.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = bg.png; path = ../../../../textures/base/bg.png; sourceTree = "<group>"; };
|
F856B5C21F55F7EE00FE9494 /* bg.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = bg.png; path = ../../../../textures/base/bg.png; sourceTree = "<group>"; };
|
||||||
F87DC8B8210887C600393B64 /* mapgen_v7p.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = mapgen_v7p.h; path = ../../../../src/mapgen_v7p.h; sourceTree = "<group>"; };
|
F87DC8B8210887C600393B64 /* mapgen_v7p.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = mapgen_v7p.h; path = ../../../../src/mapgen_v7p.h; sourceTree = "<group>"; };
|
||||||
F87DC8B9210887C700393B64 /* mapgen_v7p.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = mapgen_v7p.cpp; path = ../../../../src/mapgen_v7p.cpp; sourceTree = "<group>"; };
|
F87DC8B9210887C700393B64 /* mapgen_v7p.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = mapgen_v7p.cpp; path = ../../../../src/mapgen_v7p.cpp; sourceTree = "<group>"; };
|
||||||
F8E6C4D91DCA3B7900F64426 /* MultiCraft.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = MultiCraft.app; sourceTree = BUILT_PRODUCTS_DIR; };
|
F8E6C4D91DCA3B7900F64426 /* BlockColor.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = BlockColor.app; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||||
F8E6C4E81DCA3B7900F64426 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
|
F8E6C4E81DCA3B7900F64426 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
|
||||||
F8E6C4EB1DCA3B7900F64426 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
|
F8E6C4EB1DCA3B7900F64426 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
|
||||||
F8E6C4ED1DCA3B7900F64426 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
|
F8E6C4ED1DCA3B7900F64426 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
|
||||||
|
@ -809,7 +809,7 @@
|
||||||
F8E6C7DD1DCA47A300F64426 /* libvorbis.a in Frameworks */,
|
F8E6C7DD1DCA47A300F64426 /* libvorbis.a in Frameworks */,
|
||||||
F8E6C7DF1DCA47AF00F64426 /* libvorbisfile.a in Frameworks */,
|
F8E6C7DF1DCA47AF00F64426 /* libvorbisfile.a in Frameworks */,
|
||||||
F85119A71F4476FC00BFA9AF /* libcurl.a in Frameworks */,
|
F85119A71F4476FC00BFA9AF /* libcurl.a in Frameworks */,
|
||||||
EB4367AE23CAD13A43ADF4B1 /* libPods-MultiCraft.a in Frameworks */,
|
EB4367AE23CAD13A43ADF4B1 /* libPods-BlockColor.a in Frameworks */,
|
||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
};
|
};
|
||||||
|
@ -839,8 +839,8 @@
|
||||||
87D06CD2CC310BE5E73639F4 /* Pods */ = {
|
87D06CD2CC310BE5E73639F4 /* Pods */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
32528F14AAB9EA0E9CAB8526 /* Pods-MultiCraft.debug.xcconfig */,
|
32528F14AAB9EA0E9CAB8526 /* Pods-BlockColor.debug.xcconfig */,
|
||||||
1E76DCA01B51A98F0CA4C480 /* Pods-MultiCraft.release.xcconfig */,
|
1E76DCA01B51A98F0CA4C480 /* Pods-BlockColor.release.xcconfig */,
|
||||||
);
|
);
|
||||||
name = Pods;
|
name = Pods;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
|
@ -857,7 +857,7 @@
|
||||||
F8E6C4D01DCA3B7900F64426 = {
|
F8E6C4D01DCA3B7900F64426 = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
F8E6C4DB1DCA3B7900F64426 /* MultiCraft */,
|
F8E6C4DB1DCA3B7900F64426 /* BlockColor */,
|
||||||
F8E6C4DA1DCA3B7900F64426 /* Products */,
|
F8E6C4DA1DCA3B7900F64426 /* Products */,
|
||||||
F8E6C7C31DCA42F300F64426 /* Frameworks */,
|
F8E6C7C31DCA42F300F64426 /* Frameworks */,
|
||||||
87D06CD2CC310BE5E73639F4 /* Pods */,
|
87D06CD2CC310BE5E73639F4 /* Pods */,
|
||||||
|
@ -868,12 +868,12 @@
|
||||||
F8E6C4DA1DCA3B7900F64426 /* Products */ = {
|
F8E6C4DA1DCA3B7900F64426 /* Products */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
F8E6C4D91DCA3B7900F64426 /* MultiCraft.app */,
|
F8E6C4D91DCA3B7900F64426 /* BlockColor.app */,
|
||||||
);
|
);
|
||||||
name = Products;
|
name = Products;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
};
|
};
|
||||||
F8E6C4DB1DCA3B7900F64426 /* MultiCraft */ = {
|
F8E6C4DB1DCA3B7900F64426 /* BlockColor */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
849C4F85209656D2005EB041 /* ru.lproj */,
|
849C4F85209656D2005EB041 /* ru.lproj */,
|
||||||
|
@ -885,7 +885,7 @@
|
||||||
F8E6C4DC1DCA3B7900F64426 /* Supporting Files */,
|
F8E6C4DC1DCA3B7900F64426 /* Supporting Files */,
|
||||||
F8E6C4F61DCA3EAF00F64426 /* src */,
|
F8E6C4F61DCA3EAF00F64426 /* src */,
|
||||||
);
|
);
|
||||||
path = MultiCraft;
|
path = BlockColor;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
};
|
};
|
||||||
F8E6C4DC1DCA3B7900F64426 /* Supporting Files */ = {
|
F8E6C4DC1DCA3B7900F64426 /* Supporting Files */ = {
|
||||||
|
@ -1501,7 +1501,7 @@
|
||||||
F8E6C7C81DCA430300F64426 /* OpenGLES.framework */,
|
F8E6C7C81DCA430300F64426 /* OpenGLES.framework */,
|
||||||
F8E6C7C61DCA42FA00F64426 /* UIKit.framework */,
|
F8E6C7C61DCA42FA00F64426 /* UIKit.framework */,
|
||||||
F8E6C7C41DCA42F300F64426 /* QuartzCore.framework */,
|
F8E6C7C41DCA42F300F64426 /* QuartzCore.framework */,
|
||||||
8758CE009FCB7E91F4C84C28 /* libPods-MultiCraft.a */,
|
8758CE009FCB7E91F4C84C28 /* libPods-BlockColor.a */,
|
||||||
);
|
);
|
||||||
name = Frameworks;
|
name = Frameworks;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
|
@ -1509,9 +1509,9 @@
|
||||||
/* End PBXGroup section */
|
/* End PBXGroup section */
|
||||||
|
|
||||||
/* Begin PBXNativeTarget section */
|
/* Begin PBXNativeTarget section */
|
||||||
F8E6C4D81DCA3B7900F64426 /* MultiCraft */ = {
|
F8E6C4D81DCA3B7900F64426 /* BlockColor */ = {
|
||||||
isa = PBXNativeTarget;
|
isa = PBXNativeTarget;
|
||||||
buildConfigurationList = F8E6C4F01DCA3B7900F64426 /* Build configuration list for PBXNativeTarget "MultiCraft" */;
|
buildConfigurationList = F8E6C4F01DCA3B7900F64426 /* Build configuration list for PBXNativeTarget "BlockColor" */;
|
||||||
buildPhases = (
|
buildPhases = (
|
||||||
C73312165F97B96FC254B124 /* [CP] Check Pods Manifest.lock */,
|
C73312165F97B96FC254B124 /* [CP] Check Pods Manifest.lock */,
|
||||||
F8E6C4D51DCA3B7900F64426 /* Sources */,
|
F8E6C4D51DCA3B7900F64426 /* Sources */,
|
||||||
|
@ -1523,9 +1523,9 @@
|
||||||
);
|
);
|
||||||
dependencies = (
|
dependencies = (
|
||||||
);
|
);
|
||||||
name = MultiCraft;
|
name = BlockColor;
|
||||||
productName = MultiCraft;
|
productName = BlockColor;
|
||||||
productReference = F8E6C4D91DCA3B7900F64426 /* MultiCraft.app */;
|
productReference = F8E6C4D91DCA3B7900F64426 /* BlockColor.app */;
|
||||||
productType = "com.apple.product-type.application";
|
productType = "com.apple.product-type.application";
|
||||||
};
|
};
|
||||||
/* End PBXNativeTarget section */
|
/* End PBXNativeTarget section */
|
||||||
|
@ -1535,7 +1535,7 @@
|
||||||
isa = PBXProject;
|
isa = PBXProject;
|
||||||
attributes = {
|
attributes = {
|
||||||
LastUpgradeCheck = 1020;
|
LastUpgradeCheck = 1020;
|
||||||
ORGANIZATIONNAME = MultiCraft;
|
ORGANIZATIONNAME = BlockColor;
|
||||||
TargetAttributes = {
|
TargetAttributes = {
|
||||||
F8E6C4D81DCA3B7900F64426 = {
|
F8E6C4D81DCA3B7900F64426 = {
|
||||||
CreatedOnToolsVersion = 8.0;
|
CreatedOnToolsVersion = 8.0;
|
||||||
|
@ -1547,7 +1547,7 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
buildConfigurationList = F8E6C4D41DCA3B7900F64426 /* Build configuration list for PBXProject "MultiCraft" */;
|
buildConfigurationList = F8E6C4D41DCA3B7900F64426 /* Build configuration list for PBXProject "BlockColor" */;
|
||||||
compatibilityVersion = "Xcode 10.0";
|
compatibilityVersion = "Xcode 10.0";
|
||||||
developmentRegion = en;
|
developmentRegion = en;
|
||||||
hasScannedForEncodings = 0;
|
hasScannedForEncodings = 0;
|
||||||
|
@ -1560,7 +1560,7 @@
|
||||||
projectDirPath = "";
|
projectDirPath = "";
|
||||||
projectRoot = "";
|
projectRoot = "";
|
||||||
targets = (
|
targets = (
|
||||||
F8E6C4D81DCA3B7900F64426 /* MultiCraft */,
|
F8E6C4D81DCA3B7900F64426 /* BlockColor */,
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
/* End PBXProject section */
|
/* End PBXProject section */
|
||||||
|
@ -1595,7 +1595,7 @@
|
||||||
);
|
);
|
||||||
name = "[CP] Check Pods Manifest.lock";
|
name = "[CP] Check Pods Manifest.lock";
|
||||||
outputPaths = (
|
outputPaths = (
|
||||||
"$(DERIVED_FILE_DIR)/Pods-MultiCraft-checkManifestLockResult.txt",
|
"$(DERIVED_FILE_DIR)/Pods-BlockColor-checkManifestLockResult.txt",
|
||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
shellPath = /bin/sh;
|
shellPath = /bin/sh;
|
||||||
|
@ -1608,15 +1608,15 @@
|
||||||
files = (
|
files = (
|
||||||
);
|
);
|
||||||
inputFileListPaths = (
|
inputFileListPaths = (
|
||||||
"${PODS_ROOT}/Target Support Files/Pods-MultiCraft/Pods-MultiCraft-resources-${CONFIGURATION}-input-files.xcfilelist",
|
"${PODS_ROOT}/Target Support Files/Pods-BlockColor/Pods-BlockColor-resources-${CONFIGURATION}-input-files.xcfilelist",
|
||||||
);
|
);
|
||||||
name = "[CP] Copy Pods Resources";
|
name = "[CP] Copy Pods Resources";
|
||||||
outputFileListPaths = (
|
outputFileListPaths = (
|
||||||
"${PODS_ROOT}/Target Support Files/Pods-MultiCraft/Pods-MultiCraft-resources-${CONFIGURATION}-output-files.xcfilelist",
|
"${PODS_ROOT}/Target Support Files/Pods-BlockColor/Pods-BlockColor-resources-${CONFIGURATION}-output-files.xcfilelist",
|
||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
shellPath = /bin/sh;
|
shellPath = /bin/sh;
|
||||||
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-MultiCraft/Pods-MultiCraft-resources.sh\"\n";
|
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-BlockColor/Pods-BlockColor-resources.sh\"\n";
|
||||||
showEnvVarsInLog = 0;
|
showEnvVarsInLog = 0;
|
||||||
};
|
};
|
||||||
/* End PBXShellScriptBuildPhase section */
|
/* End PBXShellScriptBuildPhase section */
|
||||||
|
@ -1932,7 +1932,7 @@
|
||||||
};
|
};
|
||||||
F8E6C4F11DCA3B7900F64426 /* Debug */ = {
|
F8E6C4F11DCA3B7900F64426 /* Debug */ = {
|
||||||
isa = XCBuildConfiguration;
|
isa = XCBuildConfiguration;
|
||||||
baseConfigurationReference = 32528F14AAB9EA0E9CAB8526 /* Pods-MultiCraft.debug.xcconfig */;
|
baseConfigurationReference = 32528F14AAB9EA0E9CAB8526 /* Pods-BlockColor.debug.xcconfig */;
|
||||||
buildSettings = {
|
buildSettings = {
|
||||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
CODE_SIGN_IDENTITY = "iPhone Developer";
|
||||||
|
@ -1965,7 +1965,7 @@
|
||||||
"${SRCROOT}/../deps/freetype/include/freetype2",
|
"${SRCROOT}/../deps/freetype/include/freetype2",
|
||||||
"${SRCROOT}/../Pods/libCurlPod/include",
|
"${SRCROOT}/../Pods/libCurlPod/include",
|
||||||
);
|
);
|
||||||
INFOPLIST_FILE = MultiCraft/Info.plist;
|
INFOPLIST_FILE = BlockColor/Info.plist;
|
||||||
LD_RUNPATH_SEARCH_PATHS = (
|
LD_RUNPATH_SEARCH_PATHS = (
|
||||||
"$(inherited)",
|
"$(inherited)",
|
||||||
"@executable_path/Frameworks",
|
"@executable_path/Frameworks",
|
||||||
|
@ -2019,14 +2019,14 @@
|
||||||
"-L${SRCROOT}/../Pods/libCurlPod/lib",
|
"-L${SRCROOT}/../Pods/libCurlPod/lib",
|
||||||
"-Wl,-dead_strip",
|
"-Wl,-dead_strip",
|
||||||
);
|
);
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = mobi.MultiCraft;
|
PRODUCT_BUNDLE_IDENTIFIER = mobi.BlockColor;
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
};
|
};
|
||||||
name = Debug;
|
name = Debug;
|
||||||
};
|
};
|
||||||
F8E6C4F21DCA3B7900F64426 /* Release */ = {
|
F8E6C4F21DCA3B7900F64426 /* Release */ = {
|
||||||
isa = XCBuildConfiguration;
|
isa = XCBuildConfiguration;
|
||||||
baseConfigurationReference = 1E76DCA01B51A98F0CA4C480 /* Pods-MultiCraft.release.xcconfig */;
|
baseConfigurationReference = 1E76DCA01B51A98F0CA4C480 /* Pods-BlockColor.release.xcconfig */;
|
||||||
buildSettings = {
|
buildSettings = {
|
||||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
CODE_SIGN_IDENTITY = "iPhone Developer";
|
||||||
|
@ -2060,7 +2060,7 @@
|
||||||
"${SRCROOT}/../deps/freetype/include/freetype2",
|
"${SRCROOT}/../deps/freetype/include/freetype2",
|
||||||
"${SRCROOT}/../Pods/libCurlPod/include",
|
"${SRCROOT}/../Pods/libCurlPod/include",
|
||||||
);
|
);
|
||||||
INFOPLIST_FILE = MultiCraft/Info.plist;
|
INFOPLIST_FILE = BlockColor/Info.plist;
|
||||||
LD_RUNPATH_SEARCH_PATHS = (
|
LD_RUNPATH_SEARCH_PATHS = (
|
||||||
"$(inherited)",
|
"$(inherited)",
|
||||||
"@executable_path/Frameworks",
|
"@executable_path/Frameworks",
|
||||||
|
@ -2114,7 +2114,7 @@
|
||||||
"-L${SRCROOT}/../Pods/libCurlPod/lib",
|
"-L${SRCROOT}/../Pods/libCurlPod/lib",
|
||||||
"-Wl,-dead_strip",
|
"-Wl,-dead_strip",
|
||||||
);
|
);
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = mobi.MultiCraft;
|
PRODUCT_BUNDLE_IDENTIFIER = mobi.BlockColor;
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
};
|
};
|
||||||
name = Release;
|
name = Release;
|
||||||
|
@ -2122,7 +2122,7 @@
|
||||||
/* End XCBuildConfiguration section */
|
/* End XCBuildConfiguration section */
|
||||||
|
|
||||||
/* Begin XCConfigurationList section */
|
/* Begin XCConfigurationList section */
|
||||||
F8E6C4D41DCA3B7900F64426 /* Build configuration list for PBXProject "MultiCraft" */ = {
|
F8E6C4D41DCA3B7900F64426 /* Build configuration list for PBXProject "BlockColor" */ = {
|
||||||
isa = XCConfigurationList;
|
isa = XCConfigurationList;
|
||||||
buildConfigurations = (
|
buildConfigurations = (
|
||||||
F8E6C4EE1DCA3B7900F64426 /* Debug */,
|
F8E6C4EE1DCA3B7900F64426 /* Debug */,
|
||||||
|
@ -2131,7 +2131,7 @@
|
||||||
defaultConfigurationIsVisible = 0;
|
defaultConfigurationIsVisible = 0;
|
||||||
defaultConfigurationName = Release;
|
defaultConfigurationName = Release;
|
||||||
};
|
};
|
||||||
F8E6C4F01DCA3B7900F64426 /* Build configuration list for PBXNativeTarget "MultiCraft" */ = {
|
F8E6C4F01DCA3B7900F64426 /* Build configuration list for PBXNativeTarget "BlockColor" */ = {
|
||||||
isa = XCConfigurationList;
|
isa = XCConfigurationList;
|
||||||
buildConfigurations = (
|
buildConfigurations = (
|
||||||
F8E6C4F11DCA3B7900F64426 /* Debug */,
|
F8E6C4F11DCA3B7900F64426 /* Debug */,
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
<key>CFBundleDevelopmentRegion</key>
|
<key>CFBundleDevelopmentRegion</key>
|
||||||
<string>en</string>
|
<string>en</string>
|
||||||
<key>CFBundleDisplayName</key>
|
<key>CFBundleDisplayName</key>
|
||||||
<string>MultiCraft</string>
|
<string>BlockColor</string>
|
||||||
<key>CFBundleExecutable</key>
|
<key>CFBundleExecutable</key>
|
||||||
<string>$(EXECUTABLE_NAME)</string>
|
<string>$(EXECUTABLE_NAME)</string>
|
||||||
<key>CFBundleGetInfoString</key>
|
<key>CFBundleGetInfoString</key>
|
||||||
|
@ -30,11 +30,11 @@
|
||||||
<true/>
|
<true/>
|
||||||
</dict>
|
</dict>
|
||||||
<key>NSCalendarsUsageDescription</key>
|
<key>NSCalendarsUsageDescription</key>
|
||||||
<string>MultiCraft needs your calendar to provide personalised advertising experience tailored to you</string>
|
<string>BlockColor needs your calendar to provide personalised advertising experience tailored to you</string>
|
||||||
<key>NSLocationAlwaysUsageDescription</key>
|
<key>NSLocationAlwaysUsageDescription</key>
|
||||||
<string>MultiCraft needs your location to provide personalised advertising experience tailored to you</string>
|
<string>BlockColor needs your location to provide personalised advertising experience tailored to you</string>
|
||||||
<key>NSLocationWhenInUseUsageDescription</key>
|
<key>NSLocationWhenInUseUsageDescription</key>
|
||||||
<string>MultiCraft needs your location to provide personalised advertising experience tailored to you</string>
|
<string>BlockColor needs your location to provide personalised advertising experience tailored to you</string>
|
||||||
<key>UIBackgroundModes</key>
|
<key>UIBackgroundModes</key>
|
||||||
<array>
|
<array>
|
||||||
<string>fetch</string>
|
<string>fetch</string>
|
||||||
|
|
|
@ -0,0 +1,2 @@
|
||||||
|
[.ShellClassInfo]
|
||||||
|
LocalizedResourceName=BlockColor
|
|
@ -0,0 +1,2 @@
|
||||||
|
[.ShellClassInfo]
|
||||||
|
LocalizedResourceName=BlockColor
|
|
@ -1,7 +1,7 @@
|
||||||
project 'MultiCraft/MultiCraft.xcodeproj'
|
project 'BlockColor/BlockColor.xcodeproj'
|
||||||
platform :ios, '9.0'
|
platform :ios, '9.0'
|
||||||
|
|
||||||
target 'MultiCraft' do
|
target 'BlockColor' do
|
||||||
source 'https://github.com/CocoaPods/Specs.git'
|
source 'https://github.com/CocoaPods/Specs.git'
|
||||||
source 'https://github.com/appodeal/CocoaPods.git'
|
source 'https://github.com/appodeal/CocoaPods.git'
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#!/bin/bash -e
|
#!/bin/bash -e
|
||||||
|
|
||||||
echo
|
echo
|
||||||
echo "Starting build MultiCraft for iOS..."
|
echo "Starting build BlockColor for iOS..."
|
||||||
|
|
||||||
echo
|
echo
|
||||||
echo "Build Libraries:"
|
echo "Build Libraries:"
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
# (install: brew install imagemagick)
|
# (install: brew install imagemagick)
|
||||||
SIZES="76 120 152 167 180"
|
SIZES="76 120 152 167 180"
|
||||||
SRCFILE=icon.png
|
SRCFILE=icon.png
|
||||||
DSTDIR=MultiCraft/MultiCraft/Assets.xcassets/AppIcon.appiconset
|
DSTDIR=BlockColor/BlockColor/Assets.xcassets/AppIcon.appiconset
|
||||||
|
|
||||||
for sz in $SIZES; do
|
for sz in $SIZES; do
|
||||||
echo "Creating ${sz}x${sz} icon"
|
echo "Creating ${sz}x${sz} icon"
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
#!/bin/bash -e
|
#!/bin/bash -e
|
||||||
|
|
||||||
if [ ! -d MultiCraft/MultiCraft.xcodeproj ]; then
|
if [ ! -d BlockColor/BlockColor.xcodeproj ]; then
|
||||||
echo "Run this in build/iOS"
|
echo "Run this in build/iOS"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
|
@ -17,6 +17,10 @@
|
||||||
|
|
||||||
--------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
local blockcolor_developers = {
|
||||||
|
"MrChiantos",
|
||||||
|
}
|
||||||
|
|
||||||
local multicraft_developers = {
|
local multicraft_developers = {
|
||||||
"Maksim Gamarnik (MoNTE48) <MoNTE48@mail.ua>",
|
"Maksim Gamarnik (MoNTE48) <MoNTE48@mail.ua>",
|
||||||
"Bektur Mambetov (ubulem) <berkut87@gmail.com>",
|
"Bektur Mambetov (ubulem) <berkut87@gmail.com>",
|
||||||
|
@ -96,13 +100,15 @@ return {
|
||||||
caption = fgettext("Credits"),
|
caption = fgettext("Credits"),
|
||||||
cbf_formspec = function(tabview, name, tabdata)
|
cbf_formspec = function(tabview, name, tabdata)
|
||||||
local version = core.get_version()
|
local version = core.get_version()
|
||||||
return "label[0.1,-0.1;MultiCraft Open Source Project, ver. " .. version.string .. "]" ..
|
return "label[0.1,-0.1;Blockcolor Open Source Project, ver. " .. version.string .. "]" ..
|
||||||
"label[0.1,0.3;Copyright (c) 2014-2019 MultiCraft Development Team]" ..
|
"label[0.1,0.3;Copyright (c) 2018-2019 BlockColor Development Team]" ..
|
||||||
"label[0.1,0.7;Home page: https://github.com/MultiCraftProject/MultiCraft]" ..
|
"label[0.1,0.7;Home page: https://github.com/MrChiantos/]" ..
|
||||||
"label[0.1,1.1;Licence: LGPLv3.0+ and CC-BY-SA 3.0]" ..
|
"label[0.1,1.1;Licence: LGPLv3.0+ and CC-BY-SA 3.0]" ..
|
||||||
"tablecolumns[color;text]" ..
|
"tablecolumns[color;text]" ..
|
||||||
"tableoptions[background=#999999;highlight=#00000000;border=true]" ..
|
"tableoptions[background=#999999;highlight=#00000000;border=true]" ..
|
||||||
"table[0,1.6;11.8,3.8;list_credits;" ..
|
"table[0,1.6;11.8,3.8;list_credits;" ..
|
||||||
|
"#FFFF00," .. fgettext("BlockColor Developers") .. ",," ..
|
||||||
|
buildCreditList(blockcolor_developers) .. ",,," ..
|
||||||
"#FFFF00," .. fgettext("MultiCraft Developers") .. ",," ..
|
"#FFFF00," .. fgettext("MultiCraft Developers") .. ",," ..
|
||||||
buildCreditList(multicraft_developers) .. ",,," ..
|
buildCreditList(multicraft_developers) .. ",,," ..
|
||||||
"#FFFF00," .. fgettext("Minetest Developers") .. ",," ..
|
"#FFFF00," .. fgettext("Minetest Developers") .. ",," ..
|
||||||
|
|
|
@ -1,2 +0,0 @@
|
||||||
*
|
|
||||||
!.gitignore
|
|
|
@ -68,7 +68,7 @@ if(GETTEXT_FOUND)
|
||||||
set(GETTEXT_MO_BUILD_PATH ${CMAKE_BINARY_DIR}/locale/<locale>/LC_MESSAGES)
|
set(GETTEXT_MO_BUILD_PATH ${CMAKE_BINARY_DIR}/locale/<locale>/LC_MESSAGES)
|
||||||
set(GETTEXT_MO_DEST_PATH ${LOCALEDIR}/<locale>/LC_MESSAGES)
|
set(GETTEXT_MO_DEST_PATH ${LOCALEDIR}/<locale>/LC_MESSAGES)
|
||||||
file(GLOB GETTEXT_AVAILABLE_LOCALES RELATIVE ${GETTEXT_PO_PATH} "${GETTEXT_PO_PATH}/*")
|
file(GLOB GETTEXT_AVAILABLE_LOCALES RELATIVE ${GETTEXT_PO_PATH} "${GETTEXT_PO_PATH}/*")
|
||||||
list(REMOVE_ITEM GETTEXT_AVAILABLE_LOCALES MultiCraft.pot)
|
list(REMOVE_ITEM GETTEXT_AVAILABLE_LOCALES BlockColor.pot)
|
||||||
list(REMOVE_ITEM GETTEXT_AVAILABLE_LOCALES timestamp)
|
list(REMOVE_ITEM GETTEXT_AVAILABLE_LOCALES timestamp)
|
||||||
macro(SET_MO_PATHS _buildvar _destvar _locale)
|
macro(SET_MO_PATHS _buildvar _destvar _locale)
|
||||||
string(REPLACE "<locale>" ${_locale} ${_buildvar} ${GETTEXT_MO_BUILD_PATH})
|
string(REPLACE "<locale>" ${_locale} ${_buildvar} ${GETTEXT_MO_BUILD_PATH})
|
||||||
|
|
|
@ -0,0 +1,114 @@
|
||||||
|
.TH blockcolor 6 "10 September 2013" "" ""
|
||||||
|
|
||||||
|
.SH NAME
|
||||||
|
BlockColor, BlockColorServer \- Multiplayer infinite-world block sandbox
|
||||||
|
|
||||||
|
.SH SYNOPSIS
|
||||||
|
.B BlockColor
|
||||||
|
[\fB--server SERVER OPTIONS\fR | \fBCLIENT OPTIONS\fR]
|
||||||
|
[\fBCOMMON OPTIONS\fR]
|
||||||
|
[\fBWORLD PATH\fR]
|
||||||
|
|
||||||
|
.B BlockColorServer
|
||||||
|
[\fBSERVER OPTIONS\fR]
|
||||||
|
[\fBCOMMON OPTIONS\fR]
|
||||||
|
[\fBWORLD PATH\fR]
|
||||||
|
|
||||||
|
.SH DESCRIPTION
|
||||||
|
.B BlockColor
|
||||||
|
is one of the first InfiniMiner/Minecraft(/whatever) inspired games (started October 2010), with a goal of taking the survival multiplayer gameplay to a slightly different direction.
|
||||||
|
.PP
|
||||||
|
The main design philosophy is to keep it technically simple, stable and portable. It will be kept lightweight enough to run on fairly old hardware.
|
||||||
|
|
||||||
|
.SH COMMON OPTIONS
|
||||||
|
.TP
|
||||||
|
.B \-\-help
|
||||||
|
Print allowed options and exit
|
||||||
|
.TP
|
||||||
|
.B \-\-version
|
||||||
|
Print version information and exit
|
||||||
|
.TP
|
||||||
|
.B \-\-config <value>
|
||||||
|
Load configuration from specified file
|
||||||
|
.TP
|
||||||
|
.B \-\-logfile <value>
|
||||||
|
Set logfile path (debug.txt)
|
||||||
|
.TP
|
||||||
|
.B \-\-info
|
||||||
|
Print more information to console
|
||||||
|
.TP
|
||||||
|
.B \-\-verbose
|
||||||
|
Print even more information to console
|
||||||
|
.TP
|
||||||
|
.B \-\-trace
|
||||||
|
Print enormous amounts of information to console
|
||||||
|
.TP
|
||||||
|
.B \-\-gameid <value>
|
||||||
|
Set gameid
|
||||||
|
.TP
|
||||||
|
.B \-\-worldname <value>
|
||||||
|
Set world path by name
|
||||||
|
.TP
|
||||||
|
.B \-\-world <value> | list
|
||||||
|
Set world path or list worlds
|
||||||
|
.TP
|
||||||
|
.B \-\-map\-dir <value>
|
||||||
|
Same as \-\-world (deprecated)
|
||||||
|
.TP
|
||||||
|
.B \-\-port <value>
|
||||||
|
Set network port (UDP) to use
|
||||||
|
.TP
|
||||||
|
.B \-\-run\-unittests
|
||||||
|
Run unit tests and exit
|
||||||
|
|
||||||
|
.SH CLIENT OPTIONS
|
||||||
|
.TP
|
||||||
|
.B \-\-address <value>
|
||||||
|
Address to connect to
|
||||||
|
.TP
|
||||||
|
.B \-\-go
|
||||||
|
Disable main menu
|
||||||
|
.TP
|
||||||
|
.B \-\-name <value>
|
||||||
|
Set player name
|
||||||
|
.TP
|
||||||
|
.B \-\-password <value>
|
||||||
|
Set password
|
||||||
|
.TP
|
||||||
|
.B \-\-random\-input
|
||||||
|
Enable random user input, for testing (client only)
|
||||||
|
.TP
|
||||||
|
.B \-\-videomodes
|
||||||
|
List available video modes (client only)
|
||||||
|
.TP
|
||||||
|
.B \-\-speedtests
|
||||||
|
Run speed tests
|
||||||
|
|
||||||
|
.SH SERVER OPTIONS
|
||||||
|
.TP
|
||||||
|
.B \-\-migrate <value>
|
||||||
|
Migrate from current map backend to another. Possible values are sqlite3,
|
||||||
|
leveldb, redis, and dummy.
|
||||||
|
.TP
|
||||||
|
.B \-\-terminal
|
||||||
|
Display an interactive terminal over ncurses during execution.
|
||||||
|
|
||||||
|
.SH ENVIRONMENT
|
||||||
|
.TP
|
||||||
|
.B BLOCKCOLOR_SUBGAME_PATH
|
||||||
|
Colon delimited list of directories to search for subgames.
|
||||||
|
|
||||||
|
.SH BUGS
|
||||||
|
Please report all bugs to Perttu Ahola <celeron55@gmail.com>.
|
||||||
|
|
||||||
|
.SH AUTHOR
|
||||||
|
.PP
|
||||||
|
Perttu Ahola <celeron55@gmail.com>
|
||||||
|
and contributors.
|
||||||
|
.PP
|
||||||
|
This man page was originally written by
|
||||||
|
Juhani Numminen <juhaninumminen0@gmail.com>.
|
||||||
|
|
||||||
|
.SH WWW
|
||||||
|
http://www.minetest.net/
|
||||||
|
|
|
@ -0,0 +1,2 @@
|
||||||
|
.so man6/BlockColor.6
|
||||||
|
|
114
doc/MultiCraft.6
|
@ -1,114 +0,0 @@
|
||||||
.TH MultiCraft 6 "10 September 2013" "" ""
|
|
||||||
|
|
||||||
.SH NAME
|
|
||||||
MultiCraft, MultiCraftServer \- Multiplayer infinite-world block sandbox
|
|
||||||
|
|
||||||
.SH SYNOPSIS
|
|
||||||
.B MultiCraft
|
|
||||||
[\fB--server SERVER OPTIONS\fR | \fBCLIENT OPTIONS\fR]
|
|
||||||
[\fBCOMMON OPTIONS\fR]
|
|
||||||
[\fBWORLD PATH\fR]
|
|
||||||
|
|
||||||
.B MultiCraftServer
|
|
||||||
[\fBSERVER OPTIONS\fR]
|
|
||||||
[\fBCOMMON OPTIONS\fR]
|
|
||||||
[\fBWORLD PATH\fR]
|
|
||||||
|
|
||||||
.SH DESCRIPTION
|
|
||||||
.B MultiCraft
|
|
||||||
is one of the first InfiniMiner/Minecraft(/whatever) inspired games (started October 2010), with a goal of taking the survival multiplayer gameplay to a slightly different direction.
|
|
||||||
.PP
|
|
||||||
The main design philosophy is to keep it technically simple, stable and portable. It will be kept lightweight enough to run on fairly old hardware.
|
|
||||||
|
|
||||||
.SH COMMON OPTIONS
|
|
||||||
.TP
|
|
||||||
.B \-\-help
|
|
||||||
Print allowed options and exit
|
|
||||||
.TP
|
|
||||||
.B \-\-version
|
|
||||||
Print version information and exit
|
|
||||||
.TP
|
|
||||||
.B \-\-config <value>
|
|
||||||
Load configuration from specified file
|
|
||||||
.TP
|
|
||||||
.B \-\-logfile <value>
|
|
||||||
Set logfile path (debug.txt)
|
|
||||||
.TP
|
|
||||||
.B \-\-info
|
|
||||||
Print more information to console
|
|
||||||
.TP
|
|
||||||
.B \-\-verbose
|
|
||||||
Print even more information to console
|
|
||||||
.TP
|
|
||||||
.B \-\-trace
|
|
||||||
Print enormous amounts of information to console
|
|
||||||
.TP
|
|
||||||
.B \-\-gameid <value>
|
|
||||||
Set gameid
|
|
||||||
.TP
|
|
||||||
.B \-\-worldname <value>
|
|
||||||
Set world path by name
|
|
||||||
.TP
|
|
||||||
.B \-\-world <value> | list
|
|
||||||
Set world path or list worlds
|
|
||||||
.TP
|
|
||||||
.B \-\-map\-dir <value>
|
|
||||||
Same as \-\-world (deprecated)
|
|
||||||
.TP
|
|
||||||
.B \-\-port <value>
|
|
||||||
Set network port (UDP) to use
|
|
||||||
.TP
|
|
||||||
.B \-\-run\-unittests
|
|
||||||
Run unit tests and exit
|
|
||||||
|
|
||||||
.SH CLIENT OPTIONS
|
|
||||||
.TP
|
|
||||||
.B \-\-address <value>
|
|
||||||
Address to connect to
|
|
||||||
.TP
|
|
||||||
.B \-\-go
|
|
||||||
Disable main menu
|
|
||||||
.TP
|
|
||||||
.B \-\-name <value>
|
|
||||||
Set player name
|
|
||||||
.TP
|
|
||||||
.B \-\-password <value>
|
|
||||||
Set password
|
|
||||||
.TP
|
|
||||||
.B \-\-random\-input
|
|
||||||
Enable random user input, for testing (client only)
|
|
||||||
.TP
|
|
||||||
.B \-\-videomodes
|
|
||||||
List available video modes (client only)
|
|
||||||
.TP
|
|
||||||
.B \-\-speedtests
|
|
||||||
Run speed tests
|
|
||||||
|
|
||||||
.SH SERVER OPTIONS
|
|
||||||
.TP
|
|
||||||
.B \-\-migrate <value>
|
|
||||||
Migrate from current map backend to another. Possible values are sqlite3,
|
|
||||||
leveldb, redis, and dummy.
|
|
||||||
.TP
|
|
||||||
.B \-\-terminal
|
|
||||||
Display an interactive terminal over ncurses during execution.
|
|
||||||
|
|
||||||
.SH ENVIRONMENT
|
|
||||||
.TP
|
|
||||||
.B MULTICRAFT_SUBGAME_PATH
|
|
||||||
Colon delimited list of directories to search for subgames.
|
|
||||||
|
|
||||||
.SH BUGS
|
|
||||||
Please report all bugs to Perttu Ahola <celeron55@gmail.com>.
|
|
||||||
|
|
||||||
.SH AUTHOR
|
|
||||||
.PP
|
|
||||||
Perttu Ahola <celeron55@gmail.com>
|
|
||||||
and contributors.
|
|
||||||
.PP
|
|
||||||
This man page was originally written by
|
|
||||||
Juhani Numminen <juhaninumminen0@gmail.com>.
|
|
||||||
|
|
||||||
.SH WWW
|
|
||||||
http://www.minetest.net/
|
|
||||||
|
|
|
@ -1,2 +0,0 @@
|
||||||
.so man6/MultiCraft.6
|
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
MultiCraft Open Source Project:
|
BlockColor Open Source Project:
|
||||||
=================================
|
=================================
|
||||||
|
|
||||||
LGPLv3.0+, CC-BY-SA 3.0 and a little bit proprietary textures. The list in the file nearby.
|
LGPLv3.0+, CC-BY-SA 3.0 and a little bit proprietary textures. The list in the file nearby.
|
||||||
You can use these textures without restriction in the MultiCraft Project.
|
You can use these textures without restriction in the BlockColor Project.
|
||||||
You cannot use them in another project.
|
You cannot use them in another project.
|
||||||
They are an integral part of this project and are created or purchased exclusively for it.
|
They are an integral part of this project and are created or purchased exclusively for it.
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
MultiCraft Docs
|
BlockColor Docs
|
||||||
========
|
========
|
||||||
|
|
||||||
Default controls
|
Default controls
|
||||||
|
@ -61,24 +61,24 @@ Where each location is on each platform:
|
||||||
* user = .
|
* user = .
|
||||||
* Linux installed:
|
* Linux installed:
|
||||||
* bin = /usr/bin
|
* bin = /usr/bin
|
||||||
* share = /usr/share/MultiCraft
|
* share = /usr/share/BlockColor
|
||||||
* user = ~/.MultiCraft
|
* user = ~/.BlockColor
|
||||||
* macOS:
|
* macOS:
|
||||||
* bin = Contents/MacOS
|
* bin = Contents/MacOS
|
||||||
* share = Contents/Resources
|
* share = Contents/Resources
|
||||||
* user = Contents/User OR ~/Library/Application Support/MultiCraft
|
* user = Contents/User OR ~/Library/Application Support/BlockColor
|
||||||
|
|
||||||
Worlds can be found as separate folders in: user/worlds/
|
Worlds can be found as separate folders in: user/worlds/
|
||||||
|
|
||||||
Configuration file:
|
Configuration file:
|
||||||
-------------------
|
-------------------
|
||||||
- Default location:
|
- Default location:
|
||||||
$user/MultiCraft.conf
|
$user/BlockColor.conf
|
||||||
- It is created by MultiCraft when it is ran the first time.
|
- It is created by BlockColor when it is ran the first time.
|
||||||
- A specific file can be specified on the command line:
|
- A specific file can be specified on the command line:
|
||||||
--config <path-to-file>
|
--config <path-to-file>
|
||||||
- A run-in-place build will look for the configuration file in
|
- A run-in-place build will look for the configuration file in
|
||||||
$location_of_exe/../MultiCraft.conf and also $location_of_exe/../../MultiCraft.conf
|
$location_of_exe/../BlockColor.conf and also $location_of_exe/../../BlockColor.conf
|
||||||
|
|
||||||
Command-line options:
|
Command-line options:
|
||||||
---------------------
|
---------------------
|
||||||
|
@ -122,13 +122,13 @@ For Fedora users:
|
||||||
$ sudo dnf install git
|
$ sudo dnf install git
|
||||||
|
|
||||||
Download source (this is the URL to the latest of source repository, which might not work at all times) using git:
|
Download source (this is the URL to the latest of source repository, which might not work at all times) using git:
|
||||||
$ git clone --depth 1 https://github.com/MultiCraft/MultiCraft.git
|
$ git clone --depth 1 https://github.com/BlockColor/BlockColor.git
|
||||||
$ cd MultiCraft
|
$ cd BlockColor
|
||||||
|
|
||||||
Download source, without using git:
|
Download source, without using git:
|
||||||
$ wget https://github.com/MultiCraft/MultiCraft/archive/master.tar.gz
|
$ wget https://github.com/BlockColor/BlockColor/archive/master.tar.gz
|
||||||
$ tar xf master.tar.gz
|
$ tar xf master.tar.gz
|
||||||
$ cd MultiCraft-master
|
$ cd BlockColor-master
|
||||||
|
|
||||||
#### Build
|
#### Build
|
||||||
|
|
||||||
|
@ -139,7 +139,7 @@ Build a version that runs directly from the source directory:
|
||||||
|
|
||||||
Run it:
|
Run it:
|
||||||
|
|
||||||
$ ./bin/MultiCraft
|
$ ./bin/BlockColor
|
||||||
|
|
||||||
- Use cmake . -LH to see all CMake options and their current state
|
- Use cmake . -LH to see all CMake options and their current state
|
||||||
- If you want to install it system-wide (or are making a distribution package),
|
- If you want to install it system-wide (or are making a distribution package),
|
||||||
|
@ -155,8 +155,8 @@ Run it:
|
||||||
|
|
||||||
General options:
|
General options:
|
||||||
|
|
||||||
BUILD_CLIENT - Build MultiCraft client
|
BUILD_CLIENT - Build BlockColor client
|
||||||
BUILD_SERVER - Build MultiCraft server
|
BUILD_SERVER - Build BlockColor server
|
||||||
CMAKE_BUILD_TYPE - Type of build (Release vs. Debug)
|
CMAKE_BUILD_TYPE - Type of build (Release vs. Debug)
|
||||||
Release - Release build
|
Release - Release build
|
||||||
Debug - Debug build
|
Debug - Debug build
|
||||||
|
@ -178,7 +178,7 @@ General options:
|
||||||
ENABLE_SYSTEM_JSONCPP - Use JsonCPP from system
|
ENABLE_SYSTEM_JSONCPP - Use JsonCPP from system
|
||||||
RUN_IN_PLACE - Create a portable install (worlds, settings etc. in current directory)
|
RUN_IN_PLACE - Create a portable install (worlds, settings etc. in current directory)
|
||||||
USE_GPROF - Enable profiling using GProf
|
USE_GPROF - Enable profiling using GProf
|
||||||
VERSION_EXTRA - Text to append to version (e.g. VERSION_EXTRA=foobar -> MultiCraft 0.4.9-foobar)
|
VERSION_EXTRA - Text to append to version (e.g. VERSION_EXTRA=foobar -> BlockColor 0.4.9-foobar)
|
||||||
|
|
||||||
Library specific options:
|
Library specific options:
|
||||||
|
|
||||||
|
@ -256,8 +256,8 @@ Library specific options:
|
||||||
* Optional: gettext library and tools:
|
* Optional: gettext library and tools:
|
||||||
http://gnuwin32.sourceforge.net/downlinks/gettext.php
|
http://gnuwin32.sourceforge.net/downlinks/gettext.php
|
||||||
* This is used for other UI languages. Feel free to leave it out.
|
* This is used for other UI languages. Feel free to leave it out.
|
||||||
* And, of course, MultiCraft:
|
* And, of course, BlockColor:
|
||||||
https://github.com/MultiCraftProject/MultiCraft
|
https://github.com/BlockColorProject/BlockColor
|
||||||
* Steps:
|
* Steps:
|
||||||
* Select a directory called DIR hereafter in which you will operate.
|
* Select a directory called DIR hereafter in which you will operate.
|
||||||
* Make sure you have CMake and a compiler installed.
|
* Make sure you have CMake and a compiler installed.
|
||||||
|
@ -278,7 +278,7 @@ Library specific options:
|
||||||
* irrlicht-1.8.3.zip
|
* irrlicht-1.8.3.zip
|
||||||
* sqlite-amalgamation-3130000.zip (SQLite3 headers)
|
* sqlite-amalgamation-3130000.zip (SQLite3 headers)
|
||||||
* sqlite-dll-win32-x86-3130000.zip (SQLite3 library for 32bit system)
|
* sqlite-dll-win32-x86-3130000.zip (SQLite3 library for 32bit system)
|
||||||
* MultiCraft-source.zip
|
* BlockColor-source.zip
|
||||||
+ zlib-1.2.5
|
+ zlib-1.2.5
|
||||||
* zlib.h
|
* zlib.h
|
||||||
+ win32
|
+ win32
|
||||||
|
@ -300,18 +300,18 @@ Library specific options:
|
||||||
+bin
|
+bin
|
||||||
+include
|
+include
|
||||||
+lib
|
+lib
|
||||||
+ MultiCraft
|
+ BlockColor
|
||||||
+ src
|
+ src
|
||||||
+ doc
|
+ doc
|
||||||
* CMakeLists.txt
|
* CMakeLists.txt
|
||||||
...
|
...
|
||||||
-----------------
|
-----------------
|
||||||
* Start up the CMake GUI
|
* Start up the CMake GUI
|
||||||
* Select "Browse Source..." and select DIR/MultiCraft
|
* Select "Browse Source..." and select DIR/BlockColor
|
||||||
* Now, if using MSVC:
|
* Now, if using MSVC:
|
||||||
* Select "Browse Build..." and select DIR/MultiCraft-build
|
* Select "Browse Build..." and select DIR/BlockColor-build
|
||||||
* Else if using MinGW:
|
* Else if using MinGW:
|
||||||
* Select "Browse Build..." and select DIR/MultiCraft
|
* Select "Browse Build..." and select DIR/BlockColor
|
||||||
* Select "Configure"
|
* Select "Configure"
|
||||||
* Select your compiler
|
* Select your compiler
|
||||||
* It will warn about missing stuff, ignore that at this point. (later don't)
|
* It will warn about missing stuff, ignore that at this point. (later don't)
|
||||||
|
@ -321,7 +321,7 @@ Library specific options:
|
||||||
BUILD_CLIENT [X]
|
BUILD_CLIENT [X]
|
||||||
BUILD_SERVER [ ]
|
BUILD_SERVER [ ]
|
||||||
CMAKE_BUILD_TYPE Release
|
CMAKE_BUILD_TYPE Release
|
||||||
CMAKE_INSTALL_PREFIX DIR/MultiCraft-install
|
CMAKE_INSTALL_PREFIX DIR/BlockColor-install
|
||||||
IRRLICHT_SOURCE_DIR DIR/irrlicht-1.8.3
|
IRRLICHT_SOURCE_DIR DIR/irrlicht-1.8.3
|
||||||
RUN_IN_PLACE [X]
|
RUN_IN_PLACE [X]
|
||||||
WARN_ALL [ ]
|
WARN_ALL [ ]
|
||||||
|
@ -336,21 +336,21 @@ Library specific options:
|
||||||
* If CMake complains it couldn't find SQLITE3, choose "Advanced" box on the
|
* If CMake complains it couldn't find SQLITE3, choose "Advanced" box on the
|
||||||
right top corner, then specify the location of SQLITE3_INCLUDE_DIR and
|
right top corner, then specify the location of SQLITE3_INCLUDE_DIR and
|
||||||
SQLITE3_LIBRARY manually.
|
SQLITE3_LIBRARY manually.
|
||||||
* If you want to build 64-bit MultiCraft, you will need to build 64-bit version
|
* If you want to build 64-bit BlockColor, you will need to build 64-bit version
|
||||||
of irrlicht engine manually, as only 32-bit pre-built library is provided.
|
of irrlicht engine manually, as only 32-bit pre-built library is provided.
|
||||||
* Hit "Configure"
|
* Hit "Configure"
|
||||||
* Hit "Configure" once again 8)
|
* Hit "Configure" once again 8)
|
||||||
* If something is still coloured red, you have a problem.
|
* If something is still coloured red, you have a problem.
|
||||||
* Hit "Generate"
|
* Hit "Generate"
|
||||||
If using MSVC:
|
If using MSVC:
|
||||||
* Open the generated MultiCraft.sln
|
* Open the generated BlockColor.sln
|
||||||
* The project defaults to the "Debug" configuration. Make very sure to
|
* The project defaults to the "Debug" configuration. Make very sure to
|
||||||
select "Release", unless you want to debug some stuff (it's slower
|
select "Release", unless you want to debug some stuff (it's slower
|
||||||
and might not even work at all)
|
and might not even work at all)
|
||||||
* Build the ALL_BUILD project
|
* Build the ALL_BUILD project
|
||||||
* Build the INSTALL project
|
* Build the INSTALL project
|
||||||
* You should now have a working game with the executable in
|
* You should now have a working game with the executable in
|
||||||
DIR/MultiCraft-install/bin/MultiCraft.exe
|
DIR/BlockColor-install/bin/BlockColor.exe
|
||||||
* Additionally you may create a zip package by building the PACKAGE
|
* Additionally you may create a zip package by building the PACKAGE
|
||||||
project.
|
project.
|
||||||
If using MinGW:
|
If using MinGW:
|
||||||
|
@ -359,14 +359,14 @@ Library specific options:
|
||||||
* You may need to copy some of the downloaded DLLs into bin/, see what
|
* You may need to copy some of the downloaded DLLs into bin/, see what
|
||||||
running the produced executable tells you it doesn't have.
|
running the produced executable tells you it doesn't have.
|
||||||
* You should now have a working game with the executable in
|
* You should now have a working game with the executable in
|
||||||
DIR/MultiCraft/bin/MultiCraft.exe
|
DIR/BlockColor/bin/BlockColor.exe
|
||||||
|
|
||||||
### Bat script to build Windows releases of MultiCraft
|
### Bat script to build Windows releases of BlockColor
|
||||||
|
|
||||||
This is how we build Windows releases.
|
This is how we build Windows releases.
|
||||||
|
|
||||||
set sourcedir=%CD%
|
set sourcedir=%CD%
|
||||||
set installpath="C:\tmp\MultiCraft_install"
|
set installpath="C:\tmp\BlockColor_install"
|
||||||
set irrlichtpath="C:\tmp\irrlicht-1.7.2"
|
set irrlichtpath="C:\tmp\irrlicht-1.7.2"
|
||||||
|
|
||||||
set builddir=%sourcedir%\bvc10
|
set builddir=%sourcedir%\bvc10
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/** @mainpage The MultiCraft engine internal documentation
|
/** @mainpage The BlockColor engine internal documentation
|
||||||
|
|
||||||
Welcome to the MultiCraft engine Doxygen documentation site!\n
|
Welcome to the BlockColor engine Doxygen documentation site!\n
|
||||||
This page documents the internal structure of the MultiCraft engine's C++ code.\n
|
This page documents the internal structure of the BlockColor engine's C++ code.\n
|
||||||
Use the tree view at the left to navigate.
|
Use the tree view at the left to navigate.
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
MultiCraft protocol (incomplete, early draft):
|
BlockColor protocol (incomplete, early draft):
|
||||||
Updated 2011-06-18
|
Updated 2011-06-18
|
||||||
|
|
||||||
A custom protocol over UDP.
|
A custom protocol over UDP.
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
MultiCraft Texture Pack Reference
|
BlockColor Texture Pack Reference
|
||||||
===============================
|
===============================
|
||||||
|
|
||||||
Texture packs allow you to replace textures provided by a mod with your own
|
Texture packs allow you to replace textures provided by a mod with your own
|
||||||
|
|
|
@ -1,26 +0,0 @@
|
||||||
MultiCraft Game mod: 3d_armor
|
|
||||||
=============================
|
|
||||||
|
|
||||||
License Source Code
|
|
||||||
-------------------
|
|
||||||
|
|
||||||
Copyright (C) 2012-2019 stujones11, Stuart Jones <stujones111@gmail.com>
|
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU Lesser General Public License as published by
|
|
||||||
the Free Software Foundation; either version 3.0 of the License, or
|
|
||||||
(at your option) any later version.
|
|
||||||
|
|
||||||
This program is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
GNU Lesser General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU Lesser General Public License along
|
|
||||||
with this program; if not, write to the Free Software Foundation, Inc.,
|
|
||||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
||||||
|
|
||||||
License Textures
|
|
||||||
----------------
|
|
||||||
Copyright (C) 2013 Vattic
|
|
||||||
Copyright (C) 2017-2019 Maksim Gamarnik [MoNTE48] MoNTE48@mail.ua & MultiCraft Development Team
|
|
|
@ -1,451 +0,0 @@
|
||||||
ARMOR_INIT_DELAY = 1
|
|
||||||
ARMOR_INIT_TIMES = 1
|
|
||||||
ARMOR_BONES_DELAY = 1
|
|
||||||
ARMOR_UPDATE_TIME = 1
|
|
||||||
ARMOR_DROP = minetest.get_modpath("bones") ~= nil
|
|
||||||
ARMOR_DESTROY = false
|
|
||||||
ARMOR_LEVEL_MULTIPLIER = 1
|
|
||||||
ARMOR_HEAL_MULTIPLIER = 1
|
|
||||||
|
|
||||||
local modpath = minetest.get_modpath("3d_armor")
|
|
||||||
|
|
||||||
local time = 0
|
|
||||||
|
|
||||||
local armor_def = setmetatable({}, {
|
|
||||||
__index = function()
|
|
||||||
return setmetatable({
|
|
||||||
groups = setmetatable({}, {
|
|
||||||
__index = function()
|
|
||||||
return 0
|
|
||||||
end})
|
|
||||||
}, {
|
|
||||||
__index = function()
|
|
||||||
return 0
|
|
||||||
end
|
|
||||||
})
|
|
||||||
end,
|
|
||||||
})
|
|
||||||
|
|
||||||
local armor_textures = setmetatable({}, {
|
|
||||||
__index = function()
|
|
||||||
return setmetatable({}, {
|
|
||||||
__index = function()
|
|
||||||
return "blank.png"
|
|
||||||
end
|
|
||||||
})
|
|
||||||
end
|
|
||||||
})
|
|
||||||
|
|
||||||
armor = {
|
|
||||||
player_hp = {},
|
|
||||||
elements = {"head", "torso", "legs", "feet"},
|
|
||||||
physics = {"jump","speed","gravity"},
|
|
||||||
--[[formspec = "size[8,8.5]list[detached:player_name_armor;armor;0,1;2,3;]"
|
|
||||||
.."image[2,0.75;2,4;armor_preview]"
|
|
||||||
.."list[current_player;main;0,4.5;8,4;]"
|
|
||||||
.."list[current_player;craft;4,1;3,3;]"
|
|
||||||
.."list[current_player;craftpreview;7,2;1,1;]",]]
|
|
||||||
def = armor_def,
|
|
||||||
textures = armor_textures,
|
|
||||||
default_skin = "character",
|
|
||||||
}
|
|
||||||
|
|
||||||
armor.update_player_visuals = function(self, player)
|
|
||||||
if not player then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
local name = player:get_player_name()
|
|
||||||
if self.textures[name] then
|
|
||||||
player_api.set_textures(player, {
|
|
||||||
self.textures[name].skin,
|
|
||||||
self.textures[name].armor,
|
|
||||||
self.textures[name].wielditem,
|
|
||||||
self.textures[name].cube,
|
|
||||||
})
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
armor.set_player_armor = function(self, player)
|
|
||||||
if not player then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
local name = player:get_player_name()
|
|
||||||
local armor_inv = self:get_armor_inventory(player)
|
|
||||||
if not name then
|
|
||||||
minetest.log("error", "Failed to read player name")
|
|
||||||
return
|
|
||||||
elseif not armor_inv then
|
|
||||||
minetest.log("error", "Failed to read player inventory")
|
|
||||||
return
|
|
||||||
end
|
|
||||||
local armor_texture = "blank.png"
|
|
||||||
local armor_level = 0
|
|
||||||
local armor_heal = 0
|
|
||||||
local state = 0
|
|
||||||
local items = 0
|
|
||||||
local elements = {}
|
|
||||||
local textures = {}
|
|
||||||
local physics_o = {speed=1,gravity=1,jump=1}
|
|
||||||
local material = {type=nil, count=1}
|
|
||||||
--local preview = armor:get_player_skin(name).."_preview.png"
|
|
||||||
for _,v in ipairs(self.elements) do
|
|
||||||
elements[v] = false
|
|
||||||
end
|
|
||||||
for i=1, 4 do
|
|
||||||
local stack = armor_inv:get_stack("armor", i)
|
|
||||||
local item = stack:get_name()
|
|
||||||
if stack:get_count() == 1 then
|
|
||||||
local def = stack:get_definition()
|
|
||||||
for k, v in pairs(elements) do
|
|
||||||
if v == false then
|
|
||||||
local level = def.groups["armor_"..k]
|
|
||||||
if level then
|
|
||||||
local texture = item:gsub("%:", "_")
|
|
||||||
table.insert(textures, texture..".png")
|
|
||||||
--preview = preview.."^"..texture.."_preview.png"
|
|
||||||
armor_level = armor_level + level
|
|
||||||
state = state + stack:get_wear()
|
|
||||||
items = items + 1
|
|
||||||
local heal = def.groups["armor_heal"] or 0
|
|
||||||
armor_heal = armor_heal + heal
|
|
||||||
for kk,vv in ipairs(self.physics) do
|
|
||||||
local o_value = def.groups["physics_"..vv]
|
|
||||||
if o_value then
|
|
||||||
physics_o[vv] = physics_o[vv] + o_value
|
|
||||||
end
|
|
||||||
end
|
|
||||||
local mat = string.match(item, "%:.+_(.+)$")
|
|
||||||
if material.type then
|
|
||||||
if material.type == mat then
|
|
||||||
material.count = material.count + 1
|
|
||||||
end
|
|
||||||
else
|
|
||||||
material.type = mat
|
|
||||||
end
|
|
||||||
elements[k] = true
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
--[[if minetest.get_modpath("shields") then
|
|
||||||
armor_level = armor_level * 0.9
|
|
||||||
end]]
|
|
||||||
if material.type and material.count == #self.elements then
|
|
||||||
armor_level = armor_level * 1.1
|
|
||||||
end
|
|
||||||
armor_level = armor_level * ARMOR_LEVEL_MULTIPLIER
|
|
||||||
armor_heal = armor_heal * ARMOR_HEAL_MULTIPLIER
|
|
||||||
if #textures > 0 then
|
|
||||||
armor_texture = table.concat(textures, "^")
|
|
||||||
end
|
|
||||||
local armor_groups = {fleshy=100}
|
|
||||||
if armor_level > 0 then
|
|
||||||
armor_groups.level = math.floor(armor_level / 20)
|
|
||||||
armor_groups.fleshy = 100 - armor_level
|
|
||||||
end
|
|
||||||
player:set_armor_groups(armor_groups)
|
|
||||||
player:set_physics_override(physics_o)
|
|
||||||
self.textures[name].armor = armor_texture
|
|
||||||
--self.textures[name].preview = preview
|
|
||||||
self.def[name].state = state
|
|
||||||
self.def[name].count = items
|
|
||||||
self.def[name].level = armor_level
|
|
||||||
self.def[name].heal = armor_heal
|
|
||||||
self.def[name].jump = physics_o.jump
|
|
||||||
self.def[name].speed = physics_o.speed
|
|
||||||
self.def[name].gravity = physics_o.gravity
|
|
||||||
self:update_player_visuals(player)
|
|
||||||
end
|
|
||||||
|
|
||||||
armor.update_armor = function(self, player)
|
|
||||||
if not player then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
local name = player:get_player_name()
|
|
||||||
local hp = player:get_hp() or 0
|
|
||||||
if hp == 0 then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
local armor_inv = self:get_armor_inventory(player)
|
|
||||||
if not armor_inv then
|
|
||||||
minetest.log("error", "Failed to read detached inventory")
|
|
||||||
return
|
|
||||||
end
|
|
||||||
local state = 0
|
|
||||||
local items = 0
|
|
||||||
for i=1, 4 do
|
|
||||||
local stack = armor_inv:get_stack("armor", i)
|
|
||||||
if stack:get_count() > 0 then
|
|
||||||
local use = stack:get_definition().groups["armor_use"] or 0
|
|
||||||
local item = stack:get_name()
|
|
||||||
stack:add_wear(use)
|
|
||||||
armor_inv:set_stack("armor", i, stack)
|
|
||||||
state = state + stack:get_wear()
|
|
||||||
items = items + 1
|
|
||||||
if stack:get_count() == 0 then
|
|
||||||
local desc = minetest.registered_items[item].description
|
|
||||||
if desc then
|
|
||||||
minetest.chat_send_player(name, "Your "..desc.." got destroyed!")
|
|
||||||
end
|
|
||||||
self:set_player_armor(player)
|
|
||||||
armor:update_inventory(player)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
self:save_armor_inventory(player)
|
|
||||||
self.def[name].state = state
|
|
||||||
self.def[name].count = items
|
|
||||||
end
|
|
||||||
|
|
||||||
armor.get_player_skin = function(self, name)
|
|
||||||
local skin = nil
|
|
||||||
if skins then
|
|
||||||
skin = skins.skins[name]
|
|
||||||
elseif u_skins then
|
|
||||||
skin = u_skins.u_skins[name]
|
|
||||||
end
|
|
||||||
return skin or armor.default_skin
|
|
||||||
end
|
|
||||||
|
|
||||||
armor.get_armor_formspec = function(self, name)
|
|
||||||
local formspec = armor.formspec:gsub("player_name", name)
|
|
||||||
--formspec = formspec:gsub("armor_preview", armor.textures[name].preview)
|
|
||||||
formspec = formspec:gsub("armor_level", armor.def[name].level)
|
|
||||||
return formspec:gsub("armor_heal", armor.def[name].heal)
|
|
||||||
end
|
|
||||||
|
|
||||||
--[[armor.update_inventory = function(self, player)
|
|
||||||
local name = player:get_player_name()
|
|
||||||
if unified_inventory then
|
|
||||||
if unified_inventory.current_page[name] == "armor" then
|
|
||||||
unified_inventory.set_inventory_formspec(player, "armor")
|
|
||||||
end
|
|
||||||
else
|
|
||||||
local formspec = armor:get_armor_formspec(name)
|
|
||||||
if inventory_plus then
|
|
||||||
local page = player:get_inventory_formspec()
|
|
||||||
if page:find("detached:"..name.."_armor") then
|
|
||||||
inventory_plus.set_inventory_formspec(player, formspec)
|
|
||||||
end
|
|
||||||
else
|
|
||||||
player:set_inventory_formspec(formspec)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end]]
|
|
||||||
armor.update_inventory = function(self, player) end
|
|
||||||
|
|
||||||
armor.get_armor_inventory = function(self, player)
|
|
||||||
local name = player:get_player_name()
|
|
||||||
if name then
|
|
||||||
return minetest.get_inventory({type="detached", name=name.."_armor"})
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
armor.serialize_inventory_list = function(self, list)
|
|
||||||
local list_table = {}
|
|
||||||
for _, stack in ipairs(list) do
|
|
||||||
table.insert(list_table, stack:to_string())
|
|
||||||
end
|
|
||||||
return minetest.serialize(list_table)
|
|
||||||
end
|
|
||||||
|
|
||||||
armor.deserialize_inventory_list = function(self, list_string)
|
|
||||||
local list_table = minetest.deserialize(list_string)
|
|
||||||
local list = {}
|
|
||||||
for _, stack in ipairs(list_table or {}) do
|
|
||||||
table.insert(list, ItemStack(stack))
|
|
||||||
end
|
|
||||||
return list
|
|
||||||
end
|
|
||||||
|
|
||||||
armor.load_armor_inventory = function(self, player)
|
|
||||||
local inv = self:get_armor_inventory(player)
|
|
||||||
if inv then
|
|
||||||
local armor_list_string = player:get_attribute("3d_armor_inventory")
|
|
||||||
if armor_list_string then
|
|
||||||
inv:set_list("armor",
|
|
||||||
self:deserialize_inventory_list(armor_list_string))
|
|
||||||
return true
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
armor.save_armor_inventory = function(self, player)
|
|
||||||
local inv = self:get_armor_inventory(player)
|
|
||||||
if inv then
|
|
||||||
player:set_attribute("3d_armor_inventory",
|
|
||||||
self:serialize_inventory_list(inv:get_list("armor")))
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
-- Register Callbacks
|
|
||||||
|
|
||||||
minetest.register_on_player_receive_fields(function(player, formname, fields)
|
|
||||||
local name = player:get_player_name()
|
|
||||||
--if inventory_plus and fields.armor then
|
|
||||||
--local formspec = armor:get_armor_formspec(name)
|
|
||||||
--inventory_plus.set_inventory_formspec(player, formspec)
|
|
||||||
--return
|
|
||||||
--end
|
|
||||||
for field, _ in pairs(fields) do
|
|
||||||
if string.find(field, "skins_set_") then
|
|
||||||
minetest.after(0, function(player)
|
|
||||||
local skin = armor:get_player_skin(name)
|
|
||||||
armor.textures[name].skin = skin..".png"
|
|
||||||
armor:set_player_armor(player)
|
|
||||||
end, player)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end)
|
|
||||||
|
|
||||||
minetest.register_on_joinplayer(function(player)
|
|
||||||
local name = player:get_player_name()
|
|
||||||
local armor_inv = minetest.create_detached_inventory(name.."_armor",{
|
|
||||||
allow_put = function(inv, listname, index, stack, player)
|
|
||||||
local item = stack:get_name()
|
|
||||||
if not minetest.registered_items[item] then return end
|
|
||||||
if not minetest.registered_items[item].groups then return end
|
|
||||||
if minetest.registered_items[item].groups['armor_head']
|
|
||||||
and index == 1
|
|
||||||
then
|
|
||||||
return 1
|
|
||||||
end
|
|
||||||
if minetest.registered_items[item].groups['armor_torso']
|
|
||||||
and index == 2
|
|
||||||
then
|
|
||||||
return 1
|
|
||||||
end
|
|
||||||
if minetest.registered_items[item].groups['armor_legs']
|
|
||||||
and index == 3
|
|
||||||
then
|
|
||||||
return 1
|
|
||||||
end
|
|
||||||
if minetest.registered_items[item].groups['armor_feet']
|
|
||||||
and index == 4
|
|
||||||
then
|
|
||||||
return 1
|
|
||||||
end
|
|
||||||
return 0
|
|
||||||
end,
|
|
||||||
on_put = function(inv, listname, index, stack, player)
|
|
||||||
armor:save_armor_inventory(player)
|
|
||||||
armor:set_player_armor(player)
|
|
||||||
--armor:update_inventory(player)
|
|
||||||
end,
|
|
||||||
on_take = function(inv, listname, index, stack, player)
|
|
||||||
armor:save_armor_inventory(player)
|
|
||||||
armor:set_player_armor(player)
|
|
||||||
--armor:update_inventory(player)
|
|
||||||
end,
|
|
||||||
on_move = function(inv, from_list, from_index, to_list, to_index, count, player)
|
|
||||||
armor:save_armor_inventory(player)
|
|
||||||
armor:set_player_armor(player)
|
|
||||||
--armor:update_inventory(player)
|
|
||||||
end,
|
|
||||||
allow_take = function(inv, listname, index, stack, player)
|
|
||||||
return stack:get_count()
|
|
||||||
end,
|
|
||||||
allow_move = function(inv, from_list, from_index, to_list, to_index, count, player)
|
|
||||||
return 0
|
|
||||||
end,
|
|
||||||
}, name)
|
|
||||||
|
|
||||||
armor_inv:set_size("armor", 4)
|
|
||||||
if not armor:load_armor_inventory(player) then
|
|
||||||
local player_inv = player:get_inventory()
|
|
||||||
if player_inv then
|
|
||||||
player_inv:set_size("armor", 4)
|
|
||||||
for i=1, 4 do
|
|
||||||
local stack = player_inv:get_stack("armor", i)
|
|
||||||
armor_inv:set_stack("armor", i, stack)
|
|
||||||
end
|
|
||||||
player_inv:set_size("armor", 0)
|
|
||||||
end
|
|
||||||
armor:save_armor_inventory(player)
|
|
||||||
end
|
|
||||||
|
|
||||||
armor.player_hp[name] = 0
|
|
||||||
armor.def[name] = {
|
|
||||||
state = 0,
|
|
||||||
count = 0,
|
|
||||||
level = 0,
|
|
||||||
heal = 0,
|
|
||||||
jump = 1,
|
|
||||||
speed = 1,
|
|
||||||
gravity = 1,
|
|
||||||
}
|
|
||||||
armor.textures[name] = {
|
|
||||||
skin = armor.default_skin..".png",
|
|
||||||
armor = "blank.png",
|
|
||||||
wielditem = "blank.png",
|
|
||||||
cube = "blank.png",
|
|
||||||
preview = armor.default_skin.."_preview.png",
|
|
||||||
}
|
|
||||||
if minetest.get_modpath("skins") then
|
|
||||||
local skin = skins.skins[name]
|
|
||||||
if skin and skins.get_type(skin) == skins.type.MODEL then
|
|
||||||
armor.textures[name].skin = skin..".png"
|
|
||||||
end
|
|
||||||
elseif minetest.get_modpath("simple_skins") then
|
|
||||||
local skin = skins.skins[name]
|
|
||||||
if skin then
|
|
||||||
armor.textures[name].skin = skin..".png"
|
|
||||||
end
|
|
||||||
--[[elseif minetest.get_modpath("u_skins") then
|
|
||||||
local skin = u_skins.u_skins[name]
|
|
||||||
if skin and u_skins.get_type(skin) == u_skins.type.MODEL then
|
|
||||||
armor.textures[name].skin = skin..".png"
|
|
||||||
end]]
|
|
||||||
end
|
|
||||||
if minetest.get_modpath("player_textures") then
|
|
||||||
local filename = minetest.get_modpath("player_textures").."/textures/player_"..name
|
|
||||||
local f = io.open(filename..".png")
|
|
||||||
if f then
|
|
||||||
f:close()
|
|
||||||
armor.textures[name].skin = "player_"..name..".png"
|
|
||||||
end
|
|
||||||
end
|
|
||||||
for i=1, ARMOR_INIT_TIMES do
|
|
||||||
minetest.after(ARMOR_INIT_DELAY * i, function(player)
|
|
||||||
armor:set_player_armor(player)
|
|
||||||
--if inventory_plus == nil and unified_inventory == nil then
|
|
||||||
--armor:update_inventory(player)
|
|
||||||
--end
|
|
||||||
end, player)
|
|
||||||
end
|
|
||||||
end)
|
|
||||||
|
|
||||||
minetest.register_on_dieplayer(function(player)
|
|
||||||
local name = player:get_player_name()
|
|
||||||
local pos = player:get_pos()
|
|
||||||
if name and pos then
|
|
||||||
local drop = {}
|
|
||||||
local armor_inv = armor:get_armor_inventory(player)
|
|
||||||
if armor_inv then
|
|
||||||
for i=1, armor_inv:get_size("armor") do
|
|
||||||
local stack = armor_inv:get_stack("armor", i)
|
|
||||||
if stack:get_count() > 0 then
|
|
||||||
minetest.item_drop(stack, player, pos)
|
|
||||||
armor_inv:set_stack("armor", i, nil)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
armor:save_armor_inventory(player)
|
|
||||||
armor:set_player_armor(player)
|
|
||||||
end
|
|
||||||
end)
|
|
||||||
|
|
||||||
minetest.register_on_player_hpchange(function(player, hp_change)
|
|
||||||
if player and hp_change < 0 then
|
|
||||||
local name = player:get_player_name()
|
|
||||||
if name then
|
|
||||||
if armor.def[name].heal > math.random(100) then
|
|
||||||
hp_change = 0
|
|
||||||
end
|
|
||||||
end
|
|
||||||
armor:update_armor(player)
|
|
||||||
end
|
|
||||||
return hp_change
|
|
||||||
end)
|
|
|
@ -1,190 +0,0 @@
|
||||||
-- Regisiter Head Armor
|
|
||||||
|
|
||||||
minetest.register_tool("3d_armor:helmet_leather", {
|
|
||||||
description = "Leather Helmet",
|
|
||||||
inventory_image = "3d_armor_inv_helmet_leather.png",
|
|
||||||
groups = {armor_head=5, armor_heal=0, armor_use=100},
|
|
||||||
wear = 0,
|
|
||||||
})
|
|
||||||
|
|
||||||
minetest.register_tool("3d_armor:helmet_steel", {
|
|
||||||
description = "Steel Helmet",
|
|
||||||
inventory_image = "3d_armor_inv_helmet_steel.png",
|
|
||||||
groups = {armor_head=10, armor_heal=5, armor_use=250},
|
|
||||||
wear = 0,
|
|
||||||
})
|
|
||||||
|
|
||||||
minetest.register_tool("3d_armor:helmet_gold", {
|
|
||||||
description = "Golden Helmet",
|
|
||||||
inventory_image = "3d_armor_inv_helmet_gold.png",
|
|
||||||
groups = {armor_head=15, armor_heal=10, armor_use=500},
|
|
||||||
wear = 0,
|
|
||||||
})
|
|
||||||
|
|
||||||
minetest.register_tool("3d_armor:helmet_diamond",{
|
|
||||||
description = "Diamond Helmet",
|
|
||||||
inventory_image = "3d_armor_inv_helmet_diamond.png",
|
|
||||||
groups = {armor_head=20, armor_heal=15, armor_use=750},
|
|
||||||
wear = 0,
|
|
||||||
})
|
|
||||||
|
|
||||||
minetest.register_tool("3d_armor:helmet_chain", {
|
|
||||||
description = "Chain Helmet",
|
|
||||||
inventory_image = "3d_armor_inv_helmet_chain.png",
|
|
||||||
groups = {armor_head=15, armor_heal=10, armor_use=500},
|
|
||||||
wear = 0,
|
|
||||||
})
|
|
||||||
|
|
||||||
-- Regisiter Torso Armor
|
|
||||||
|
|
||||||
minetest.register_tool("3d_armor:chestplate_leather", {
|
|
||||||
description = "Leather Chestplate",
|
|
||||||
inventory_image = "3d_armor_inv_chestplate_leather.png",
|
|
||||||
groups = {armor_torso=15, armor_heal=0, armor_use=100},
|
|
||||||
wear = 0,
|
|
||||||
})
|
|
||||||
|
|
||||||
minetest.register_tool("3d_armor:chestplate_steel", {
|
|
||||||
description = "Steel Chestplate",
|
|
||||||
inventory_image = "3d_armor_inv_chestplate_steel.png",
|
|
||||||
groups = {armor_torso=20, armor_heal=5, armor_use=250},
|
|
||||||
wear = 0,
|
|
||||||
})
|
|
||||||
|
|
||||||
minetest.register_tool("3d_armor:chestplate_gold", {
|
|
||||||
description = "Golden Chestplate",
|
|
||||||
inventory_image = "3d_armor_inv_chestplate_gold.png",
|
|
||||||
groups = {armor_torso=25, armor_heal=10, armor_use=500},
|
|
||||||
wear = 0,
|
|
||||||
})
|
|
||||||
|
|
||||||
minetest.register_tool("3d_armor:chestplate_diamond",{
|
|
||||||
description = "Diamond Chestplate",
|
|
||||||
inventory_image = "3d_armor_inv_chestplate_diamond.png",
|
|
||||||
groups = {armor_torso=30, armor_heal=15, armor_use=750},
|
|
||||||
wear = 0,
|
|
||||||
})
|
|
||||||
|
|
||||||
minetest.register_tool("3d_armor:chestplate_chain", {
|
|
||||||
description = "Chain Chestplate",
|
|
||||||
inventory_image = "3d_armor_inv_chestplate_chain.png",
|
|
||||||
groups = {armor_torso=25, armor_heal=10, armor_use=500},
|
|
||||||
wear = 0,
|
|
||||||
})
|
|
||||||
|
|
||||||
-- Regisiter Leg Armor
|
|
||||||
|
|
||||||
minetest.register_tool("3d_armor:leggings_leather", {
|
|
||||||
description = "Leather Leggings",
|
|
||||||
inventory_image = "3d_armor_inv_leggings_leather.png",
|
|
||||||
groups = {armor_legs=10, armor_heal=0, armor_use=100},
|
|
||||||
wear = 0,
|
|
||||||
})
|
|
||||||
|
|
||||||
minetest.register_tool("3d_armor:leggings_steel", {
|
|
||||||
description = "Steel Leggings",
|
|
||||||
inventory_image = "3d_armor_inv_leggings_steel.png",
|
|
||||||
groups = {armor_legs=15, armor_heal=5, armor_use=250},
|
|
||||||
wear = 0,
|
|
||||||
})
|
|
||||||
|
|
||||||
minetest.register_tool("3d_armor:leggings_gold", {
|
|
||||||
description = "Golden Leggings",
|
|
||||||
inventory_image = "3d_armor_inv_leggings_gold.png",
|
|
||||||
groups = {armor_legs=20, armor_heal=10, armor_use=500},
|
|
||||||
wear = 0,
|
|
||||||
})
|
|
||||||
|
|
||||||
minetest.register_tool("3d_armor:leggings_diamond",{
|
|
||||||
description = "Diamond Helmet",
|
|
||||||
inventory_image = "3d_armor_inv_leggings_diamond.png",
|
|
||||||
groups = {armor_legs=25, armor_heal=15, armor_use=750},
|
|
||||||
wear = 0,
|
|
||||||
})
|
|
||||||
|
|
||||||
minetest.register_tool("3d_armor:leggings_chain", {
|
|
||||||
description = "Chain Leggings",
|
|
||||||
inventory_image = "3d_armor_inv_leggings_chain.png",
|
|
||||||
groups = {armor_legs=20, armor_heal=10, armor_use=500},
|
|
||||||
wear = 0,
|
|
||||||
})
|
|
||||||
-- Regisiter Boots
|
|
||||||
|
|
||||||
minetest.register_tool("3d_armor:boots_leather", {
|
|
||||||
description = "Leather Boots",
|
|
||||||
inventory_image = "3d_armor_inv_boots_leather.png",
|
|
||||||
groups = {armor_feet=5, armor_heal=0, armor_use=100},
|
|
||||||
wear = 0,
|
|
||||||
})
|
|
||||||
|
|
||||||
minetest.register_tool("3d_armor:boots_steel", {
|
|
||||||
description = "Steel Boots",
|
|
||||||
inventory_image = "3d_armor_inv_boots_steel.png",
|
|
||||||
groups = {armor_feet=10, armor_heal=5, armor_use=250},
|
|
||||||
wear = 0,
|
|
||||||
})
|
|
||||||
|
|
||||||
minetest.register_tool("3d_armor:boots_gold", {
|
|
||||||
description = "Golden Boots",
|
|
||||||
inventory_image = "3d_armor_inv_boots_gold.png",
|
|
||||||
groups = {armor_feet=15, armor_heal=10, armor_use=500},
|
|
||||||
wear = 0,
|
|
||||||
})
|
|
||||||
|
|
||||||
minetest.register_tool("3d_armor:boots_diamond",{
|
|
||||||
description = "Diamond Helmet",
|
|
||||||
inventory_image = "3d_armor_inv_boots_diamond.png",
|
|
||||||
groups = {armor_feet=20, armor_heal=15, armor_use=750},
|
|
||||||
wear = 0,
|
|
||||||
})
|
|
||||||
|
|
||||||
minetest.register_tool("3d_armor:boots_chain", {
|
|
||||||
description = "Chain Boots",
|
|
||||||
inventory_image = "3d_armor_inv_boots_chain.png",
|
|
||||||
groups = {armor_feet=15, armor_heal=10, armor_use=500},
|
|
||||||
wear = 0,
|
|
||||||
})
|
|
||||||
|
|
||||||
-- Register Craft Recipies
|
|
||||||
|
|
||||||
local craft_ingreds = {
|
|
||||||
leather = "mobs:leather",
|
|
||||||
steel = "default:steel_ingot",
|
|
||||||
gold = "default:gold_ingot",
|
|
||||||
diamond = "default:diamond",
|
|
||||||
chain = "fire:fire",
|
|
||||||
}
|
|
||||||
|
|
||||||
for k, v in pairs(craft_ingreds) do
|
|
||||||
minetest.register_craft({
|
|
||||||
output = "3d_armor:helmet_"..k,
|
|
||||||
recipe = {
|
|
||||||
{v, v, v},
|
|
||||||
{v, "", v},
|
|
||||||
{"", "", ""},
|
|
||||||
},
|
|
||||||
})
|
|
||||||
minetest.register_craft({
|
|
||||||
output = "3d_armor:chestplate_"..k,
|
|
||||||
recipe = {
|
|
||||||
{v, "", v},
|
|
||||||
{v, v, v},
|
|
||||||
{v, v, v},
|
|
||||||
},
|
|
||||||
})
|
|
||||||
minetest.register_craft({
|
|
||||||
output = "3d_armor:leggings_"..k,
|
|
||||||
recipe = {
|
|
||||||
{v, v, v},
|
|
||||||
{v, "", v},
|
|
||||||
{v, "", v},
|
|
||||||
},
|
|
||||||
})
|
|
||||||
minetest.register_craft({
|
|
||||||
output = "3d_armor:boots_"..k,
|
|
||||||
recipe = {
|
|
||||||
{v, "", v},
|
|
||||||
{v, "", v},
|
|
||||||
},
|
|
||||||
})
|
|
||||||
end
|
|
|
@ -1,40 +0,0 @@
|
||||||
-- (c) Copyright BlockMen (2013-2016), LGPLv3.0+
|
|
||||||
|
|
||||||
if minetest.settings:get_bool("enable_damage") then
|
|
||||||
|
|
||||||
hud.register("armor", {
|
|
||||||
hud_elem_type = "statbar",
|
|
||||||
position = {x = 0.5, y = 1},
|
|
||||||
alignment = {x = -1, y = -1},
|
|
||||||
offset = {x = -247, y = -134},
|
|
||||||
size = {x = 24, y = 24},
|
|
||||||
text = "3d_armor_statbar_fg.png",
|
|
||||||
background = "3d_armor_statbar_bg.png",
|
|
||||||
number = 0,
|
|
||||||
max = 20,
|
|
||||||
autohide_bg = true,
|
|
||||||
})
|
|
||||||
|
|
||||||
local armor_org_func = armor.set_player_armor
|
|
||||||
local function get_armor_lvl(def)
|
|
||||||
-- items/protection based display
|
|
||||||
local lvl = def.level or 0
|
|
||||||
local max = 63 -- full diamond armor
|
|
||||||
local ret = lvl/max
|
|
||||||
if ret > 1 then
|
|
||||||
ret = 1
|
|
||||||
end
|
|
||||||
return tonumber(20 * ret)
|
|
||||||
end
|
|
||||||
|
|
||||||
function armor.set_player_armor(self, player)
|
|
||||||
armor_org_func(self, player)
|
|
||||||
local name = player:get_player_name()
|
|
||||||
local def = self.def
|
|
||||||
local armor_lvl = 0
|
|
||||||
if def[name] and def[name].level then
|
|
||||||
armor_lvl = get_armor_lvl(def[name])
|
|
||||||
end
|
|
||||||
hud.change_item(player, "armor", {number = armor_lvl})
|
|
||||||
end
|
|
||||||
end
|
|
|
@ -1,4 +0,0 @@
|
||||||
local modpath = minetest.get_modpath("3d_armor")
|
|
||||||
dofile(modpath .. "/api.lua")
|
|
||||||
dofile(modpath .. "/armor.lua")
|
|
||||||
dofile(modpath .. "/hud.lua")
|
|
Before Width: | Height: | Size: 218 B |
Before Width: | Height: | Size: 438 B |
Before Width: | Height: | Size: 433 B |
Before Width: | Height: | Size: 392 B |
Before Width: | Height: | Size: 353 B |
Before Width: | Height: | Size: 338 B |
Before Width: | Height: | Size: 764 B |
Before Width: | Height: | Size: 789 B |
Before Width: | Height: | Size: 687 B |
Before Width: | Height: | Size: 732 B |
Before Width: | Height: | Size: 326 B |
Before Width: | Height: | Size: 666 B |
Before Width: | Height: | Size: 681 B |
Before Width: | Height: | Size: 678 B |
Before Width: | Height: | Size: 585 B |
Before Width: | Height: | Size: 462 B |
Before Width: | Height: | Size: 337 B |
Before Width: | Height: | Size: 337 B |
Before Width: | Height: | Size: 334 B |
Before Width: | Height: | Size: 336 B |
Before Width: | Height: | Size: 440 B |
Before Width: | Height: | Size: 324 B |
Before Width: | Height: | Size: 324 B |
Before Width: | Height: | Size: 370 B |
Before Width: | Height: | Size: 324 B |
Before Width: | Height: | Size: 372 B |
Before Width: | Height: | Size: 292 B |
Before Width: | Height: | Size: 286 B |
Before Width: | Height: | Size: 276 B |
Before Width: | Height: | Size: 283 B |
Before Width: | Height: | Size: 346 B |
Before Width: | Height: | Size: 262 B |
Before Width: | Height: | Size: 262 B |
Before Width: | Height: | Size: 324 B |
Before Width: | Height: | Size: 262 B |
Before Width: | Height: | Size: 383 B |